我的Android應用程序使用其Application
類(準確地說它的Application
子類)運行線程以從網站檢索數據。一旦它成功完成,它應該將這些數據提供給正在運行的Activity
(在我的應用中有2個活動)。我怎麼能通知Activity
這個?我如何告訴當前Activity
有新的可用數據應該被檢索和呈現? 感謝您的回答。使應用程序與當前活動溝通
回答
如何使用廣播系統。
您可以通過使用getApplicationContext();
然後你就可以將自己的定製廣播得到應用類上下文:
Intent i = new Intent();
i.setAction("your.package.customintent.TEST");
context.sendBroadcast(i);
然後你就可以在實現廣播接收您的活動的接收廣播。 這裏更多的信息:http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/
您可以設置要使用putExtra在Intent發送數據。
但您也可以將其存儲在數據庫中,並通過廣播讓活動知道有新的數據可用
如果您要將這些數據存儲到內容提供者(您應該假設數據不是很小),那麼您可以在內容提供者上註冊一個內容觀察者。觸發器應該由活動處理。看here
我剛剛讀到「如果您不需要開發自己的提供程序打算與Google其他應用程序分享您的數據「,這些內容來自Google關於內容提供商的文檔。如果我不需要與其他應用程序共享我的數據,sqlLite是否具有與內容觀察者相媲美的特性? – user3331142 2016-05-05 16:18:56
應用程序對象也是在任何應用程序中被銷燬的最後一個對象。 – sgupta 2017-06-08 17:47:48
這是非常糟糕的做法,因爲你永遠不知道應用程序對象何時被銷燬。我建議使用服務。閱讀Android開發人員!
爲什麼選擇服務?如果您只需要在用戶使用應用程序時獲取數據,那麼使用服務有點過分了嗎? – user3331142 2016-05-05 16:16:06
- 1. 當通話從應用程序開始時,將當前活動置於前臺
- 2. PHP與程序溝通
- 3. 如何與嵌入式活動溝通
- 4. Android webview js與活動的溝通
- 5. AccesibilityService與活動之間的溝通
- 6. 如何通過Watch App(Watch OS 2)溝通非活動IOS應用程序
- 7. 多片段活動溝通
- 8. Android:溝通活動/服務
- 9. 活動和服務溝通
- 10. 使用intents與倍數活動的應用程序通信
- 11. 使用界面從活動與片段之間的溝通
- 12. 如何溝通手機應用程序?
- 13. 溝通兩個Android應用程序
- 14. 與家長溝通活動,提升家長活動
- 15. Android:活動與片段活動之間的溝通
- 16. 當前活動應用程序的AppleScript中的Command-Z
- 17. 控制iOS中當前/活動應用程序的事件
- 18. 獲取.NET應用程序的當前/活動安全區域?
- 19. 當活動開始時停止應用程序進入前臺
- 20. Android Braintree SDK在當前應用程序的活動中集成
- 21. 當應用程序進入前臺時打開特定活動
- 22. 在當前運行的應用程序中繪製小活動
- 23. 獲取當前活動的應用程序名稱
- 24. 獲取Android應用程序中的當前活動
- 25. win32gui獲取當前活動的應用程序名稱
- 26. 使用管道在多線程程序與孩子溝通
- 27. 如何確定進程是否爲當前活動/前臺應用程序
- 28. Glassfish將不會與企業應用程序溝通
- 29. 如何與Android應用程序溝通Loxone-Miniserver
- 30. 讓Android應用程序與PHP文件溝通
從他們的描述來看,這聽起來像是一個本地應用程序廣播會更合適:Intent i = new Intent(TEST_ACTION); LocalBroadcastManager.getInstance(context).sendBroadcast(i); – JDJ 2014-06-10 10:55:14