Java 报警管理器不工作
我的应用程序中的报警管理器不工作。我做这里描述的一切 但警报不起作用。Java 报警管理器不工作,java,android,alarmmanager,android-alarms,Java,Android,Alarmmanager,Android Alarms,我的应用程序中的报警管理器不工作。我做这里描述的一切 但警报不起作用。 这是我的密码: 清单 <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 活动 AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Inte
这是我的密码: 清单
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
活动
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 30);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
我不知道如何使它工作。请帮助我修复它。首先,删除
设置报警
权限,因为它与此处无关
第二,您需要确保您的日历
对象在未来。大多数情况下,您的日历将成为过去,因为您使用的是calendar.set(calendar.HOUR\u of_DAY,1)
和set(calendar.MINUTE,30)
。如果您在01:30之后执行此代码,它将成为过去。在这种情况下,您需要add()
第三,在进行上述修复后,使用adb shell dumpsys alarm
查看您的报警是否已安排
第四,使用LogCat查看您的代码是否有任何警告或错误,例如,
AlarmReceiver
或NotificationActivity
未在清单中注册。您请求的是基于系统运行的实时时钟的警报,此处:
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
但你是根据一个普通的日历时钟来传递时间的。如果您希望使用基于日历的时钟发出警报,请改为说:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
请注意,
eassed\u REALTIME\u WAKEUP
和RTC\u WAKEUP
@Jackky777:adb
是安卓SDK中的一个程序,旨在通过命令行运行。
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);