我是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);