AsyncTask主要作爲運行定義明確的計算或任務的解決方案。經典的例子是一個下載器作爲一個AsyncTask,它提供了一個URL,更新了UI的進度,並在完成時退出。在AsyncTask運行時,是否添加/更改輸入到AsyncTask是否有一種合理的(不是很好的方法)?也許設置AsyncTask必須處理的項目隊列,然後從主應用程序更改該隊列......?例如,這會「打破」AsyncTask模型嗎?Android:是否可以與AsyncTask交互/更新?
2
A
回答
2
是的,你可以。 AsyncTask是已經通過UI線程的通信機制生成的線程。但是,此通信僅從AsyncTask
到UI
,而不是您需要的相反方向。
另外,同時AsyncTask
Android中的最大數量在幾個API的版本爲1。
要實現從UI
到AsyncTask
的線程安全通信,您需要使用Handler
或BlockingQueue
類。
個人而言,我不會這樣做。我會直接使用Thread
與Handler
或BlockingQueue
。
問候。
1
是的,你可以簡單地通過從由您的活動管理的同步採集得到一個對象在doInBackground()metheod做到這一點。
相關問題
- 1. 是否可以交互式更改.Xresources?
- 2. 是否可以使用CallMethodAction與參數進行交互?
- 3. 是否可以與selenium2中的隱藏元素進行交互?
- 4. 是否可以與Nant進行交互編程?
- 5. 是否可以讓PowerShell與控制檯應用程序交互?
- 6. ClickOnce應用程序是否可以與網頁進行交互
- 7. $ argc是否可以與count($ argv)互換?
- 8. android AsyncTask和UI線程交互
- 9. 我是否需要安裝Excel以「交互式」使用Openpyxl?它可以與.ODS格式交互嗎?
- 10. AsyncTask,LinearLayout Android更新可見性
- 11. C#交互式窗口可以與我的代碼交互嗎?
- 12. KnockoutJS不更新dom - 與Googlemaps api交互
- 13. Android - 定時遊戲與倒計時更新UI與剩餘時間,而用戶仍然可以與UI交互
- 14. JavaScript可以與CSS進行交互嗎?
- 15. 是否可以從AsyncTask添加標記?
- 16. 是否可以向選定國家提交iOS更新?
- 17. monkeyrunner可以與android通知進行交互嗎?
- 18. Android:檢查更新是否可用
- 19. 是否可以在Google文檔中添加交互式圖表?
- 20. 是否可以在非交互模式下運行WSL Bash?
- 21. 是否可以製作交互式Rake任務?
- 22. 是否可以在ASP.Net頁面和Silverlight之間進行交互?
- 23. 是否可以交互式調試Gitlab CI構建?
- 24. 是否可以構建交互式C shell?
- 25. 是否可以通過Lua與您的計算機進行交互?
- 26. 是否可以限制用戶與特定組件進行交互?
- 27. 是否可以與來自C#代碼的Resharper API進行交互?
- 28. 是否可以通過javascript與嵌入式電影進行交互?
- 29. 除了打開URL之外,是否可以與iPhone上的Safari進行交互?
- 30. 是否可以通過webapp與任意客戶端外設進行交互?
一個普遍接受的方式是爲每個新項目創建一個新的asynctask來處理。使用自定義的執行者,你的任務可以被序列化,也使得它看起來很像一個隊列 – njzk2
你可能要檢查的'IntentService'類,如果你想陸續 –
+1到@馬特·基羅斯執行一個任務。不建議生成多個長時間運行的異步任務。而且,不同的操作系統版本的行爲可能會有所不同。服務或只是線程/處理程序等似乎是在你的情況下更好的選擇。 –