2016-12-12 15 views
1

アプリケーションを開いていなくても、アプリケーションのリストビューがFirebaseのデータを更新する可能性はありますか?アプリケーションを開かずにFirebaseからアプリケーションデータを更新する

オフラインで作業する必要があるレストランアプリケーションに取り組んでいるため、新しいメニューを表示するためにアプリケーションを開く必要はなく、(インターネットに接続されているときはいつでも)開かれていない。達成することは可能ですか?

答えて

0

私はあなたがMENUを更新することでDATAを更新するのは混乱していると思います。メニューはレンダリングされたオブジェクトです。リストビューで駆動している場合、リストビューが表示されていない場合は、リストビューの更新を描画する理由がないため、アプリケーションが実行されていないときには更新されません。

しかし、データを絶対に更新することができます。ニュースラッシュでこれを実行して、以前のオンラインだった場合はオフラインで新しいデータにアクセスできるようにします。永続性が有効になっていることを確認して、リストビューを駆動するのと同じクエリを実行してください。パス/パラメータが同一で​​あることを確認してください。永続性はそのデータを覚えています。ユーザーがオフラインの場合、次回のアプリ起動時に新しいメニューが正しく表示されます。 Android上でオフライン機能を有効にする

+0

を使用すると、アプリが実行されているか、携帯がインターネットに接続されていることをオンラインで意味ですか? – Aloweiwi

0

あなたはオフライン機能を有効にすることができ、アプリoutstideそれを更新するものでなければなら、

FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

Firebaseのアプリは偉大なオフラインで作業し、我々はいくつかの機能を持っています をより良いものにするディスク永続性を有効にすると、アプリケーション は、アプリケーションの再起動後もすべての状態を保持できます。プレゼンスと接続状態を監視するためのツールをいくつか用意しています( )。

新鮮なデータを保持するには:

データ新鮮に保つFirebaseリアルタイムデータベースは、アクティブなリスナーのために データのローカルコピーを同期化して保存します。また、特定の の場所を同期させておくこともできます。

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

クライアントが自動的にこれらの場所で データをダウンロードして参照が アクティブなリスナーを持っていない場合でも、同期でそれを維持します。 のコード行に同期を戻すことができます。

scoresRef.keepSynced(false);既定では、以前同期された10MBのデータがキャッシュされます( )。ほとんどのアプリケーションではこれで十分です。 キャッシュが設定されたサイズを超えると、Firebaseリアルタイムデータベース は、最近使用されていないデータをパージします。 が同期しているデータは、キャッシュからパージされません。

続きを読む:

Enabling Offline Capabilities on Android

関連する問題