簡體   English   中英

如何在Android中處理后台任務隊列?

[英]How to handle queue of background tasks in 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秒執行任務1,在1.5秒執行任務2,在3.5秒執行任務3,依此類推。 我使用任務1作為開始時間,即0秒。 可能有多個任務並行運行,即,當需要安排任務j時,任務i可能仍在運行。 所有這些任務都是網絡密集型的。

正如我所說的那樣,我對Android不熟悉,因此我試圖找出在Android中解決此問題的最佳方法。

我正在考慮使用一個遍歷所有任務的AsyncTask (比如Queue ),看看是否該安排任何任務了。 如果不是安排任何任務的時間,請睡到下一個安排時間,即nextTaskTime-currentTime。 如果需要安排時間,則為Task創建Runnable實例(或者可以是另一個AsyncTask)並開始執行。 因此,基本上Main線程會創建一個名為Queue的 AsyncTask,而AsyncTask可能又會為Tasks創建其他線程。

這是解決此問題的正確方法嗎? 如果還有其他方法,請告訴我。

謝謝。

您將使用串行執行器,它將依次依次執行后台任務...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM