我有一个应用程序进行一些数据处理,然后在状态栏中通知用户是否找到任何新项目。该进程在设定的时间内作为 AlarmManager 运行。一切正常,但理想情况下,我不希望用户在积极使用应用程序时收到通知,这意味着 AlarmManager 基本上应该被暂停。我能想到的唯一解决方案是在主 Activity 的 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);
}
这不是万无一失的,但我能想到的最佳解决方案。只是想知道这是不好的做法还是有更好的解决方案?谢谢。