如何处理Android的后台任务队列



我是Android编程新手,我的情况是这样的。

我有几个任务在队列中,像这样:

Name.       Time.(sec)   and some other attributes
Task 1      0
Task 2      1.5
Task 3      3.5
Task 4      6.5
Task 5      9.5
Task 6      10.5
Task 7      11.5
Task 8      12
...

这个表基本上表示在第0秒执行Task 1,在1.5秒执行Task 2,在3.5秒执行Task 3,以此类推。我使用任务1作为开始时间,即第0秒。有可能有多个任务并行运行,即当调度任务j时,任务i可能仍在运行。所有这些任务都是网络密集型的。

正如我所说的,我不熟悉Android,我正在努力找出在Android中解决这个问题的最佳方法。

我正在考虑使用一个AsyncTask(让我们说Queue),循环通过所有的任务,看看是否是时间安排任何任务。如果不是安排任何任务的时间,那么睡到下一个安排时间,即nextTaskTime - currentTime。如果是时间调度,那么为任务创建Runnable实例(或者可能是另一个AsyncTask)并开始执行。因此,基本上主线程将创建名为队列的AsyncTask,这可能反过来为任务创建其他线程。

这是解决这个问题的正确方法吗?如果有其他方法,请告诉我。

谢谢。

您将使用串行执行器,它将以串行方式执行后台任务,类似于队列…

DownloadImageTask o1 = new DownloadImageTask();             
o1.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);

相关内容

  • 没有找到相关文章

最新更新