0

我有一个问题需要设置 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,但问题是如果我不手动关闭屏幕,屏幕将保持打开状态,这不是我想要的。

4

1 回答 1

1

AlarmManager参考文档:

参数AlarmManager.RTC_WAKEUP, 将唤醒设备(在设备休眠的情况下)以传递警报。您可以使用AlarmManager.RTC,但这不会唤醒设备,并且直到下次设备唤醒时才会发出警报。

更好的选择是为此目的使用服务,因为它们旨在执行后台任务。

于 2013-08-27T09:29:33.830 回答