【发布时间】:2012-06-12 17:37:48
【问题描述】:
我知道 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 上午 08:00 上午 08:40 09:15:AM 下午 1:00 下午 02:00 晚上 18:00
设置此操作后,我执行
adb shell dumpsys alarm
我可以看到所有未决的意图。然后我去睡觉......当我早上 07:30 醒来时,安排在 01:00 AM 的动作还没有执行,如果我执行了
adb shell dumpsys alarm
我所有未决的意图都消失了!!!!!!!
我对这种行为感到非常沮丧,因为我花了很多时间编写这个应用程序,但我无法让它正常工作。经过数周的研究,我发布了这个问题,因为我尝试了每一件事,但我仍然遇到这个问题。请帮帮我
【问题讨论】:
-
你在什么设备/ROM上?您是否尝试过在其他设备上运行该应用程序?我在一台设备上遇到了完全相同的问题(Cyanogenmod 10.1.3,即 Android 4.2.2)。但是,该问题似乎不会出现在其他设备上(HTC Stock,Android 4.1)。你找到解决办法了吗?
标签: android android-service alarmmanager android-pendingintent