1

我正在尝试每 30 分钟设置一次定期警报,但我认为它不起作用。我使用下面的代码:

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(MyActivity.this, Alarm.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(MyActivity.this, 0, intent, 0);

long selectedTimeMiliseconds = (long) (TimeUnit.MINUTES.toMillis(30));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), selectedTimeMiliseconds, alarmIntent);

如何在方法 setInexactRepeating 中设置第二个参数?使用 setRepeating 方法更好吗?

4

2 回答 2

2

不精确是一种节省电池的方法,但它是……不精确。

AlarmManager 有问题,如果设备处于睡眠模式,intent 无法启动。您应该使用 WakefulBroadCast。

https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html

于 2014-03-21T07:38:15.373 回答
0

试试这个..

alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), selectedTimeMiliseconds, alarmIntent);
于 2014-03-21T07:38:14.850 回答