我正在爲我的應用程序開發Android AppWidget。爲了更新我的appwidget,我需要從網絡下載數據。但是當我嘗試在onUpdate方法中這樣做時,我的appWidget被Android系統所殺死。我知道耗時的操作不能在接收器中完成,所以我從onUpdate方法啓動了一個服務並從中啓動了一個線程。但問題仍然存在。 任何人都可以讓我知道如何在Appwidget中進行網絡操作?Android:Appwidget中的網絡操作
3
A
回答
3
將下載工作委託給服務,可能是IntentService
,可能是WakefulIntentService
,具體取決於是否存在設備在工作期間可能會入睡的風險。
您的AppWidgetProvider
只會在您的IntentService
上撥打startService()
。
你IntentService's
onHandleIntent()
方法將你目前有工作onUpdate()
,取得自己AppWidgetManager
通過靜態getInstance()
方法。但是,由於onHandleIntent()
在後臺線程上執行,因此可以根據需要儘可能多地佔用時間。 IntentService
也會在完成所有未完成的工作請求後自動關閉。
相關問題
- 1. Android Honeycomb網絡操作
- 2. jboss操作網絡報告
- 3. Google上的操作在本地網絡中執行操作
- 4. QEMU客戶操作系統中的網絡如何工作?
- 5. 網絡跨多個操作系統
- 6. 使用RACCommand與異步網絡操作
- 7. AsyncTask,網絡操作和超時
- 8. 網絡瀏覽器鏈接操作
- 9. ReactiveCocoa鏈接網絡操作失敗
- 10. WP7 vs PriorityThreadPool和網絡操作
- 11. 選擇更新等待網絡操作?
- 12. 多任務網絡操作android
- 13. poll()函數調用網絡操作
- 14. 從ViewModel執行網絡操作
- 15. Android:AppWidget設計和佈局
- 16. 將網絡操作放置在操作隊列中時不再完成
- 17. 從網絡抓取的數據中操作字符串
- 18. Unix操作系統中的網絡連接意識
- 19. ubuntu:操縱無線網絡
- 20. 在執行網絡操作之前,我應該檢查網絡狀態嗎?
- 21. 如何通過網頁操作網絡打印機?
- 22. 如何在AsyncTask中執行網絡操作 - Android
- 23. 在Android中使用AsyncTask執行網絡操作
- 24. 在服務中執行多個網絡操作
- 25. 在DJ本地網絡瀏覽器中操作鏈接
- 26. 在Python中處理後臺網絡操作
- 27. 如何在Android服務中異步任務網絡操作?
- 28. 在Python中製作網絡
- 29. 網絡和操作系統基礎知識的好書
- 30. 如何更改網絡設備操作表的安全性?
但如何結合使用RemoteViewsService?應該提到IntentService在異步操作完成後啓動RemoteViewsService? – Malachiasz 2014-02-05 15:47:27
@Malachiasz:「應該在異步操作完成後提及IntentService啓動RemoteViewsService?」 - 沒有。 'RemoteViewsService'將被應用構件框架自動使用。您需要確保「RemoteViewsService」知道「IntentService」所做的任何數據更改,例如「IntentService」更新RemoteViewsService需要從中提取的數據庫。應該有一種方法來獲取應用部件,然後從'RemoteViewsService'重新加載它的視圖,儘管我還沒有研究過它,也不知道如何完成它。 – CommonsWare 2014-02-05 16:00:15