我正在爲我的應用程序開發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. Google上的操作在本地網絡中執行操作
- 2. QEMU客戶操作系統中的網絡如何工作?
- 3. 多任務網絡操作android
- 4. AsyncTask,網絡操作和超時
- 5. 從ViewModel執行網絡操作
- 6. 選擇更新等待網絡操作?
- 7. WP7 vs PriorityThreadPool和網絡操作
- 8. Unix操作系統中的網絡連接意識
- 9. ubuntu:操縱無線網絡
- 10. Android:AppWidget設計和佈局
- 11. 如何通過網頁操作網絡打印機?
- 12. 如何在AsyncTask中執行網絡操作 - Android
- 13. 在Python中處理後臺網絡操作
- 14. 在Python中製作網絡
- 15. 是否有理想的iPhone OS網絡操作數量?
- 16. 用戶操作喜歡社交網絡Facebook,myspace,所有大的
- 17. 如何更改網絡設備操作表的安全性?
- 18. 需要網絡操作的Android MVP測試方法
- 19. 網絡表單的跨線程操作無效(需要調用)
- 20. 網絡分區下的cas操作行爲
- 21. 在Android上保存未執行的網絡操作
- 22. 網絡操作的多進程與多線程
- 23. 網絡和操作系統基礎知識的好書
- 24. 許多涉及網絡操作的函數
- 25. 預覽不適用於Google,網絡和設備上的操作
- 26. 獲取網絡終端的操作系統版本(JAVA)
- 27. Workflow Foundation:異步操作(冗長的網絡I/O)
- 28. 對網絡營銷人員的保存操作引發異常
- 29. 用戶操作Joomla寧靜的網絡服務
- 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