2017-05-19 17 views
0

Firebaseからデータを取得して、このデータを使用して情報を表示しています。データの取得には時間がかかりますので、私はCountDownTimerを入れてアプリを待っていますが、それは素晴らしい解決策ではなく、うまく見えません。私はAndroidローダーがこの仕事をすることができますが、私はそれを動作させることができませんでした。誰もこれを解決することはできますか?Firebaseからデータを取得中にAndroidローダーを使用する

Firebaseからデータを取得するためのコードです。

infoReference.addChildEventListener(new ChildEventListener() { //inforeference is DatabaseReference 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { 
      try { 
       Info info = postSnapshot.getValue(Info.class); 
        infoList.add(info); //Just an arraylist 
      }catch(Exception e){ 
      } 
     } 
    } 

    @Override 
    public void onChildChanged(DataSnapshot dataSnapshot, String s) { 
    } 

    @Override 
    public void onChildRemoved(DataSnapshot dataSnapshot) { 
    } 

    @Override 
    public void onChildMoved(DataSnapshot dataSnapshot, String s) { 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
    } 
}); 
+0

Firebaseでローダーを使用することはお勧めしません。本当の利点はありません。リスナーを必要なときに登録するだけです(アクティビティonStart)。アクティビティがなくなると登録を解除します(onStop)。オリエンテーションの変更では、リスナを再度登録するだけです。キャッシュから前回読み込んだものはすべて取り込まれます。 –

+0

簡単な例がありますか?私はそれを働かせることはできません。私は.addOnCompleteListenerを試しました –

+0

Android上でFirebaseを使用する方法を示すサンプルコードとコードラップが豊富にあります。 https://firebase.google.com/docs/ –

答えて

0

私は右firebase、まだありません非常に良いアイデアからデータを取得した後

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      doSomething(); 
     } 
    },2000); 

を使用しています。解決策も探しています。

関連する問題