私は最近、Firebaseデータベースを自分のアプリケーションに追加しましたが、時々バッテリーの使用量が高くなっていることに気付きました。ラジオをアクティブにしたままアプリにリンクされているように見えます(ラジオは10時間で1時間30分、約5分)。
唯一の他のネットワーク要素であるアプリ内購入のブロードキャスト受信機を無効にしているため、これはFirebaseデータベースにリンクされていると思います。私はオープンリスナーを持っていません(私は単一値イベントを使用しています)が、トランザクションの一部は変更可能ですので、そのうちの1つが完了できず、定期的に再試行が可能です。データベースの永続性はオフです。私は現在、/再開を一時停止するには、次の単純な加算をテストしてい
は(回答:-)でいくつかのコードを取得するようになった):
@Override
protected void onResume()
{
super.onResume();
if (FirebaseDatabase.getInstance() != null)
{
FirebaseDatabase.getInstance().goOnline();
}
}
@Override
public void onPause() {
super.onPause();
if(FirebaseDatabase.getInstance()!=null)
{
FirebaseDatabase.getInstance().goOffline();
}
}
そしてこれまでのところ、とても良いです。 **主な変更点は、活動を切り替えることです。Firebaseを使用するすべてのアプリケーションでこれを使用する必要があります(データベースからユーザー名を読み込んでいるため、ログインができなくなりました)**
5/12/16 - 数週間のテストの後に更新されます。昨日の電池使用量が高くなった。私は主にLollipopを試していますが、ラジオが他のアプリに公開されているという苦情がたくさんあります。 Android Mで自分のアプリをテストしている他の人は何の問題も報告していないので、おそらくLollipopの問題です。私はテストを続けるつもりですが、今回は不必要なトランザクションを削除して、これが役立つかどうかを確認しようとしています。
はい、それは "古い" firebaseのためだけだと思われます。私はクラスFirebaseApp(com.google.firebase)しか持っていません.goOffline() –
同じ方法が最新のFirebase SDKにあります: –
@DenisBanach、私はそれを疑っています。さもなければFirebaseはその変更を反映するために文書を再構築するでしょう。 – 0x23212f