报警触发"睡眠" Android设备

时间:2012-05-24 15:08:20

标签: android

我正在编写一个需要经常更新的Android AppWidget(是的,我知道,不应该这样做,不管......)。我希望它只有在可见时才会更新,但令人讨厌的是似乎与WallpaperService.Engine.onVisibilityChanged(boolean visible)没什么相似。

这里建议的方法是设置一个AlarmManager.setRepeating(AlarmManager.RTC, firstShot, interval, pendingIntent)的警报,每隔interval毫秒触发一次更新。这至少不会在设备睡着时唤醒设备。

这就是我所做的。我的PendingIntent看起来像这样:

final Intent intent = new Intent(context, CountdownWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

final PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

CountdownWidgetService每次警报触发时都会记录一条消息。即使设备应该处于睡眠状态,日志消息也会显示 - 但这正是我认为不应该发生的事情。我的错误在哪里?

1 个答案:

答案 0 :(得分:1)

也许您使用的其他应用程序正在唤醒设备,并且您的警报会随之执行。如果你使用AlarmManager.RTC意味着:'如果设备处于唤醒状态则执行,或者等到它处于唤醒状态然后执行'。检查logcat以查看发生的情况并使用此命令查看已注册的其他警报:

adb shell dumpsys alarm