gpt4 book ai didi

android - 在 "sleeping"Android 设备上触发警报

转载 作者:行者123 更新时间:2023-11-30 04:11:51 25 4
gpt4 key购买 nike

我正在编写一个需要经常更新的 Android AppWidget(是的,我知道,不应该那样做,无论如何......)。我希望它仅在可见时才更新,但令人讨厌的是,似乎没有类似于 WallpaperService.Engine.onVisibilityChanged(boolean visible) 的内容。

此处建议的方法是使用 AlarmManager.setRepeating(AlarmManager.RTC, firstShot, interval, pendingIntent) 设置一个警报,每隔 interval 毫秒触发一次更新。这至少不会在设备处于 sleep 状态时唤醒它。

我就是这么做的。我的 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 每次被警报触发时都会记录一条消息。即使设备应该处于 sleep 状态,日志消息也会出现——但这正是我认为不应该发生的事情。我的错误在哪里?

最佳答案

也许您拥有的其他应用正在唤醒设备,并且您的闹钟会随之执行。如果您使用 AlarmManager.RTC,这意味着:“如果设备处于唤醒状态则执行,或者等到它唤醒后再执行”。检查 logcat 以查看发生了什么,并使用此命令查看注册了哪些其他警报:

adb shell dumpsys alarm

关于android - 在 "sleeping"Android 设备上触发警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com