Firebase Realtime Databaseを使用してAndroidアプリケーションを開発しています。addValueEventListenerは、スリープモードからアプリに戻っても実行されます
特定の参照のために私のaddValueEventListener
は、データベースにデータ変更があるたびに実行されます。また、アプリが起動するたびに実行されます。これらは私にとって理にかなっていますが、これは別のアクティビティからアプリに戻るときにも実行されます。たとえば、私は自分の携帯電話のホーム画面に移動し、このアプリに戻るときに実行され、が実行されます。
私のアプリでデータが変更されたときはいつでもvibration
を実装しているので、これは問題です。私はアプリに初めてアクセスするときにvibration
を防ぐために、グローバルなint
変数を設定しました。
それはのように動作します:私はこのアプリを再実行するたびに、それが0にリセットされますように、私は、この関数のint notificationCounter = 0
外を初期化
matchReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(notificationCounter > 0) notifyGoals(getView());
clearCurrentList();
notificationCounter++;
// Fires every single time the channelReference updates in the
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
。しかし、電話(ホーム画面またはロック画面)で別のアクティビティを実行してこの画面に戻ると、int notificationCounter = 0
の初期化の前にaddValueEventListener
が実行されます。どうすればこの問題を解決できますか?
関数を作成し、addValueEventListenerおよびその関数で呼び出します。notificationCounter = 0 –
ここで、matchReference.addValueEventListenerを呼び出しますか?それはonResumeです –
@RissmonSuresh言及してくれないのは残念です。それはonStartにあります – Dawn17