2017-05-06 9 views
0

Firebaseデータベースを使用しているアプリケーションを開発しています。私は、データベースからいくつかの情報を取得する必要があるが、addValueEventListenerはエラー E/AndroidRuntime: FATAL EXCEPTION: main Process: shareanddrive.net.net23.myapp, PID: 3317 java.lang.RuntimeException: Uncaught exception in Firebase runloop (3.0.0). Please report to [email protected] at com.google.android.gms.internal.zzagf$1$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace availableFirebaseのUncaught例外でAndroidアプリケーションがクラッシュするrunloop(3.0.0)

しかしadValuEventListener前のアクティビティで動作しますが、私は2番目の活動を来るようには動作を停止し、次ですべてと、数分後に私のアプリケーションがクラッシュした時に発生しません。私は参照が正しいことを確認しました。第二の活性の検索のための私のコードは次のとおりいずれonDataChanged又はonCancelled火災から関数の

adsviewReference.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      textView.append("on add value datachange"); 

      } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      textView.setText("Failed "); 
     } 
    }); 

。 これを手伝ってください。

答えて

0

例外はOutOfMemoryErrorです。つまり、データベースから処理するメモリよりも多くのデータをデータベースからダウンロードしようとしています。

これを解決する唯一の方法は、いつでもアプリケーションが同期するデータ量を減らすことです。あなたができること:

  1. 前のアクティビティからのデータをメモリから削除することができるように、必ずそのonStop()またはonPause()の前のアクティビティからあなたがremove the listenerことを確認してください。
  2. リスナーをツリーの下側に付けると、同期するデータが少なくなります。
関連する問題