2017-05-26 84 views
0

考慮用戶打開應用並直接進入的場景活動AOnCreate方法創建在後臺運行的服務。將數據從後臺服務發送到當前在後臺的活動

this.StartService(new Intent(this, typeof(MyService))); 

此服務獨立於活動運行,因此如果用戶關閉或銷燬應用程序,服務仍在運行。

活性的我通過RegisterReceiver註冊情侶接收器,所以當東西在我的後臺服務發生了,我通過發送廣播更新活性的

我面臨的問題是當用戶從活動A活動B。此時服務正在發送廣播,需要在活動A上更改某些內容,但由於它不在前臺,因此我不會通過接收方進行更新。因此,當用戶從活動返回活動A活動B時,用戶會看到舊數據。服務以不規則的間隔進行這些更新。

什麼是正確的方式來更新在後臺,然後去前臺的活動?在活動中獲取服務參考或數據的適當方式是什麼?

據我瞭解,如果我使用綁定服務,它將在應用程序被殺時被銷燬。我不想那樣。所有教程僅顯示如何更新前景中的活動。

我只是開始瞭解android,所以也許我錯過了一些明顯的小細節。

+0

只有在前臺解決問題 –

+0

@Sandeepdhiman,你可以發送廣播到你的活動,但我該如何要求這些更新?服務以不規則的時間間隔在廣播中發送最新的數據 - 下一次更新可能在5分鐘後,所以我不希望用戶繼續傳輸數據,直到下次更新 –

+0

你檢查了這個https://stackoverflow.com/questions/2282435/通知活動 - 從-A-廣播接收器,僅-IF-IT-是,在最前臺 –

回答

0
  1. 可以在數據庫中持久數據或文件
  2. 您可以重新啓動服務來獲取更新的數據
0

您可以使用Context#sendStickyBroadcast。它已被棄用,但仍在工作。您的活動在前臺播放時將獲得此類廣播。獲取後請不要忘記Context#removeStickyBroadcast

相關問題