データ処理を行い、新しいアイテムが見つかった場合はステータスバーでユーザーに通知するアプリケーションがあります。プロセスは、設定された時間にAlarmManagerとして実行されます。すべて正常に動作しますが、理想的には、ユーザーがアプリケーションをアクティブに使用しているときにユーザーに通知されないようにします。つまり、AlarmManagerは基本的に一時停止する必要があります。私が考えることができる唯一の解決策は、次のようなメインアクティビティのonResumeメソッドでアラームを常に開始/停止することです。
@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);
}
これは絶対確実ではありませんが、私が考えることができる最善の解決策です。それが悪い習慣なのか、それとももっと良い解決策があるのか疑問に思っていますか?ありがとう。