我有一个问题需要设置AlarmReceiver。
我正在使用此代码:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.SECOND, cal.get(Calendar.SECOND) + 5);
AlarmManager alarm = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(getActivity(), AlarmReceiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(getActivity(), 0, i, 0);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000*5, pIntent);
所以这意味着这个AlarmManager会每隔5秒调用一次AlarmReceiver,但问题是如果我不手动关闭屏幕,屏幕将保持打开状态,这不是我想要的。
答案 0 :(得分:1)
来自AlarmManager参考文件:
参数AlarmManager.RTC_WAKEUP
将唤醒设备(在设备休眠的情况下)以发送警报。您可以使用AlarmManager.RTC
,但这不会唤醒设备,并且在下次设备唤醒之前您的闹钟将无法发送。
更好的选择是为此目的使用Service,因为它们旨在执行后台任务。