У меня есть приложение, которое выполняет некоторую обработку данных, а затем уведомляет пользователя в строке состояния, если обнаружены какие-либо новые элементы.Процесс запускается как AlarmManager в установленное время.Все работает нормально, но в идеале я бы не хотел, чтобы пользователи получали уведомление, когда они активно используют приложение, а это означает, что AlarmManager в основном должен быть приостановлен.Единственное решение, о котором я могу подумать, - это постоянно запускать / останавливать тревогу в основном методе onResume Activity, подобном следующему:
@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);
}
Это не просто, но лучшее решение, которое я мог придумать.Просто интересно, если это плохая практика или есть лучшее решение?Спасибо.