gpt4 book ai didi

java - Android如何同时处理多个Runnable对象

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:47 24 4
gpt4 key购买 nike

我试图创建多个任务队列并同时执行它们,但延迟时间不同。基本上,一开始我只有一个可运行的对象

private final Runnable myQueue = new Runnable() {
public void run() {

if (service != null && service.isRunning() && service.queueEmpty()) {
queueTasks();
}
// run again in period defined in preferences
new Handler().postDelayed(myQueue,getUpdatePeriod(prefs));
}

};

private void StartWExecute() {new Handler().post(myQueue);}

我想改进我的代码,这样会有多个队列,并且所有队列同时开始执行,但是每个队列可能有不同的updatePeriod,这取决于其中的任务。通过这种方式,我可以将任务排序到队列中并手动控制更新速度。我如何实现这一目标?

谢谢。

最佳答案

您需要使用MessageQueue:

1.声明一个处理程序: 处理程序 mWorkerHandler;
2.创建一个Looper:

Thread t = new Thread() {
@Override
public void run() {
Looper.prepare();
mWorkerHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.d(TAG, "handleMessage - what = " + msg.what);
}
};
Looper.loop();
}
};
t.start();

3.现在可以发送任意数量的消息,并根据消息内容进行操作:

mWorkerHandler.sendEmptyMessageDelayed(1, 2000);
mWorkerHandler.sendEmptyMessage(2);

关于java - Android如何同时处理多个Runnable对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791852/

24 4 0
文章推荐: java - 如何按字符串值(波斯字母)对 List 进行排序?