[英]Sending data from background service to activity which is current in background
考慮當用戶打開應用程序並直接進行活動A時的場景。 OnCreate
方法創建在后台運行的服務。
this.StartService(new Intent(this, typeof(MyService)));
該服務獨立於活動運行,因此,如果用戶關閉或銷毀應用程序,該服務仍在運行。
在活動A中,我通過RegisterReceiver
注冊了幾個接收器,因此,當我的后台服務發生問題時,我會通過發送廣播來更新活動A。
我面臨的問題是用戶從活動A轉到活動B。 這時服務正在發送廣播,需要在活動A上進行某些更改,但是由於它不在前台,因此我不會通過接收方進行更新。 因此,當用戶從活動A返回活動B時 ,用戶會看到舊數據。 服務會不定期地進行這些更新。
更新在后台然后轉到前台的活動的正確方法是什么? 在活動中獲取服務引用或數據的合適方法是什么?
據我了解,如果我使用綁定服務,則當應用被殺死時,它將被銷毀。 我不想要那個。 所有教程僅顯示如何更新前台活動。
我只是了解android,所以也許我錯過了一些明顯的小細節。
您可以使用Context#sendStickyBroadcast
。 已棄用,但仍可以使用。 當您的活動進入前台時,將進行此類廣播。 獲取它后,不要忘記Context#removeStickyBroadcast
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.