我知道 AlarmManager 被讨论了好几次,但我真的找不到可以帮助我的答案。我有一个应用程序需要在某个时间启动服务并制作一些东西,所以经过一些研究工作,我决定 AlarmManager 是我需要的。
我用这段代码来完成这项工作
Intent myIntent=new Intent();
ComponentName cn=new ComponentName("my.package.name", "my.package.name.AlarmService");
myIntent.setComponent(cn);
PendingIntent pendingIntent= PendingIntent.getService(alarm._context, alarm.id, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) _context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarm.time, pendingIntent);
其中“警报”是我写的一个对象。现在,我肯定喜欢这个代码工作的死亡,因为如果我将一个(或多个)动作设置为 2 分钟或几个小时,它就会工作(我在服务的第一条指令中写了一个日志文件)。如果我执行
adb shell dumpsys alarm
我可以看到我所有未决的意图。好的,很高兴看到一切正常,我将我的行动安排在:
01:00 AM 08:00 AM 08:40 AM 09:15:AM 01:00 PM 02:00 PM 18:00 PM
设置此操作后,我执行
adb shell dumpsys alarm
我可以看到所有未决的意图。然后我去睡觉......当我早上 07:30 醒来时,安排在 01:00 AM 的操作尚未执行,如果我执行
adb shell dumpsys alarm
我所有未决的意图都消失了!!!!!!!
我对这种行为感到非常沮丧,因为我花了很多时间编写这个应用程序,但我无法让它正常工作。经过数周的研究,我发布了这个问题,因为我尝试了每一件事,但我仍然遇到这个问题。请帮我