私はいくつかのデータ処理を行うアプリケーションを持っており、新しい項目が見つかるとステータスバーのユーザーに通知します。このプロセスは、設定された時間内にAlarmManagerとして実行されます。すべて正常に動作しますが、ユーザーがアプリケーションを積極的に使用している間に通知されるのが理想的ではありません。つまり、AlarmManagerは基本的に中断されます。私は考えることができる唯一の解決策は、常に起動/これに似た主な活動のonResumeメソッドでアラームを停止されていますAlarmMangerは常に起動し、停止、悪い練習ですか?
@Override
public void onResume()
{
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, myIntent, 0);
alarmManager.cancel(pendingIntent);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 600000, 600000, pendingIntent);
}
これは誰にでもありませんが、私は考えることができる最高のソリューションを提供します。それが悪い習慣であるか、よりよい解決策があるかどうか疑問に思うだけですか?ありがとう。