2017-03-05 60 views
0

無論如何,我可以從Firebase的實時數據庫中讀取數據,並可以在應用程序未打開時保存數據,只要網絡連接發生變化,我就會在代碼中使用Firebase.getInstance.goOnline(); 它監聽數據。Firebase在後臺讀取數據Android

我能夠在數據庫中寫入數據,如果應用程序不在最近或未打開,但以同樣的方式,當應用程序未打開時我無法讀取數據。有沒有可能的方法?或者我正在採取錯誤的做法?

我只是希望只要網絡連接可用,它就會自動下載更新的數據。 ,以便稍後可以看到更新的數據處於脫機狀態。

任何幫助將不勝感激。請。

+1

我建議不要使用Firebase數據庫進行後臺數據傳輸。爲此,請使用Firebase雲消息傳遞。看到這個答案:http://stackoverflow.com/questions/42593510/firebase-listener-effect-on-battery-life-and-cpu/42593885#42593885 –

+0

我不知道現在,但有一個onPause( )你可以嘗試的方法。 –

回答

1

Android不保證您的應用進程在屏幕上不可見時是否正在運行。它可能會因爲用戶優先級較高的其他進程而被殺害。因此,總的來說,假設您可以隨時隨地進行聯網並不是一個好主意。

另外,較新的Android設備將進入doze mode以幫助保存用戶的電池。在這種情況下,你的應用肯定不會運行。

如果您想確保您的應用程序正在運行,您可以使用JobSchedulerAlarmManager安排一些時間。或者你可以用Firebase Cloud Messaging從你的服務器ping你的應用程序。

+0

我無法得到它如何在上述選項的幫助下處理該問題 –