gpt4 book ai didi

android - 即使没有从 Manifest 中实例化,也要让小部件 BroadcastReceiver 保持 Activity 状态

转载 作者:行者123 更新时间:2023-11-29 14:09:43 25 4
gpt4 key购买 nike

我有一个需要监听 BATTERY_CHANGED 事件的小部件,但是,由于此事件 protected 并且无法从 list 中声明,我从应用程序构造函数创建了一个新的 BroadcastReceiver:

public void onCreate() {
super.onCreate();
if (DEBUG) Log.d(TAG, "onCreate()");
// Register receivers
if (receiver == null) {
receiver = new MYReceiver(this);
}
// Create new intentfilter
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, intentFilter);
}

然后,我从 Receiver 调用 AppWidgetProvider 的静态方法,该方法实际上使用 RemoteViews 更新小部件。一切正常,直到 1 小时过去,在那之后我的接收器消失并且小部件不再更新。我正在使用 2.2.1 固件的 Droid 上对此进行测试-

我做错了什么?这是更新小部件的正确方法吗(我只需要那个事件,所以如果不需要,我不想提供服务)。我是否应该不时使用 AlarmManager 来确保我的接收器仍然存在?我可以这样做吗?

谢谢。

最佳答案

我不知道为什么你的接收器在一个小时后丢失了,但是使用 AlarmManager 怎么样?定期检查它是否仍然存在?因此,如果它丢失了,您可以重新注册它。

关于android - 即使没有从 Manifest 中实例化,也要让小部件 BroadcastReceiver 保持 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303686/

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