我有一個活動(ListActivity),其中如果用戶點擊一個按鈕,我啓動了一個「IntentService」的意圖,基本上對Web服務進行REST調用並收集數據。 我的問題是,一旦服務完成,我填充活動中的項目列表,這只是一個靜態變量。但是,我無法啓動listadaptor,要求它在數據發生變化時刷新視圖。有人能告訴我如何在IntentService完成任務後「通知」刷新的活動?Android IntentService提供數據回到活動
4
A
回答
9
如果您正在進行REST調用,我會建議您使用IntentService而不是AsyncTask。 AsyncTask看起來不錯而且有用,但它需要非常小心,不要泄漏上下文並將結果返回到可能早已離開的Activity,這使得它不易正確使用。
敬請收看呈現非常有益的指導方針:
http://www.youtube.com/watch?v=xHXn3Kg2IQE
編輯: 至於發回的結果,您可以在您的意圖parcelable ResultReceiver
你先從IntentService,並通知活動(並在那裏處理適配器刷新)使用.send()
至於刷新ListAdapter,它真的取決於您使用的是哪種類型。如果它是一個簡單的適配器,可以將其交換使用
getListView().setAdapter(adapter)
但你會與CursorAdapter
好得多,只是要求
context.getContentResolver().notifyChange(uri, null);
如果背景是你的IntentService的語境。
希望有幫助!
相關問題
- 1. IntentService到活動
- 2. 從活動發送數據到Intentservice
- 3. 的Android從IntentService將數據發送到活動
- 4. IntentService android下載並返回文件到活動
- 5. 從活動更新IntentService的數據
- 6. Android AsynchTask數據返回到活動
- 7. Android後臺線程如何向新活動提供數據?
- 8. 如何將數據從IntentService發送到已暫停的活動?
- 9. 嘗試啓動IntentService結果「的RuntimeException:不提供結果的活動」
- 10. Android保持活力IntentService
- 11. 從IntentService發送信息到活動
- 12. 將消息從IntentService發送到活動
- 13. 日曆提供程序:AsyncTask或IntentService?
- 14. IntentService防止活動破壞
- 15. 如何將IntentService的結果返回到活動中?
- 16. 從活動恢復IntentService
- 17. intentService使用LocalBroadcastManager的活動
- 18. 從活動中停止IntentService
- 19. IntentService通知的活動
- 20. IntentService vs AsyncTask登錄活動?
- 21. IntentService完成時從Activity啓動IntentService並刷新活動
- 22. Android IntentService不啓動
- 23. 將數據從AsyncTask返回到活動
- 24. Android的SQLite數據到新的活動
- 25. 返回動態投數據活動
- 26. 將原始sql傳遞給yii2活動數據提供者
- 27. 活動目錄成員資格提供者和用戶數據
- 28. Android活動返回按鈕返回上一個活動,但沒有數據
- 29. 返回JSON對象,提供空數據
- 30. 數據庫提供模塊,回調
如果您的IntentService處於不同的進程中,您仍然可以使用ResultReceiver嗎?我的意圖服務需要處於不同的過程中。如果我將我的ResultReceiver放入用於啓動服務的Intent中,IntentService在解組Intent中的extras時拋出ClassNotFound異常。 – John 2017-03-23 16:28:45