2016-12-12 63 views
1

應用程序的列表視圖是否有可能在未打開應用程序的情況下更新來自Firebase的數據?從Firebase更新應用程序數據而不打開應用程序

我正在開發一個餐廳應用程序,它必須離線工作,所以用戶不能打開應用程序來獲取新菜單,而必須自動更新(只要用戶連接到互聯網),即使應用程序沒有打開。是否有可能實現?

回答

0

我認爲你更新數據與更新菜單令人困惑。菜單是一個渲染對象 - 如果你用listview驅動它,當應用程序沒有運行時它自然不會被更新,因爲如果沒有顯示listview,沒有理由繪製listview更新。

但是,您絕對可以更新數據,並且我們可以在新聞快報中執行此操作,以便用戶在脫機期間訪問新數據(如果它們較早聯機)。只要確保啓用了持久性並運行驅動您的列表視圖的相同查詢即可。確保路徑/參數完全相同。持久性會記住這些數據,如果用戶處於離線狀態,下次啓動應用程序時,新菜單仍將正確顯示。

+0

你通過網上意味着應用程序正在運行或移動終端連接到互聯網? – Aloweiwi

0

你應該更新它outstide的應用程序,但是,您可以啓用離線功能,

在Android上啓用離線功能

FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

火力地堡應用工作帶來極大的下線,我們有幾個特點使 的體驗更好。啓用磁盤持久性允許您的應用程序 即使在應用程序重新啓動後也保持其所有狀態。我們提供多個 工具來監視狀態和連接狀態。

爲了保持數據新鮮:

保持數據新鮮

的火力地堡實時數據庫同步和存儲的 數據用於主動監聽本地副本。另外,您可以保持特定的 位置同步。

DatabaseReference scoresRef = 
FirebaseDatabase.getInstance().getReference("scores"); 
scoresRef.keepSynced(true); 

客戶端會自動在這些位置下載 數據,並保持同步,即使引用有 沒有活動的聽衆。您可以使用 以下代碼行重新啓用同步。

scoresRef.keepSynced(false);默認情況下,10MB先前同步的 數據將被緩存。這對大多數應用程序來說應該足夠了如果 緩存超過其配置的大小,則Firebase實時數據庫 將清除最近使用最少的數據。保持 同步的數據不會從緩存中清除。

瞭解更多:

Enabling Offline Capabilities on Android

相關問題