gpt4 book ai didi

java - 我的小部件有时不会收到 ACTION_BATTERY_CHANGED Intent

转载 作者:太空狗 更新时间:2023-10-29 13:40:39 25 4
gpt4 key购买 nike

晚上好我写了一篇关于如何编写小部件以在 Android 上显示电池电量的教程,但我发现我的小部件并不总是与“关于手机>状态”屏幕中显示的内容保持同步。我已经安装了一个闭源小部件,以查看它是否始终与“官方”值同步并且确实如此。

您可以在此处访问完整代码 https://github.com/hmrocha/Batteroid和这里的教程 http://androidappdev.org/2011/05/29/androidappdev-batteroid/

出于我的问题的目的,我将在此处发布我的 onReceive 方法,以便您可以查看问题是否存在:

public void onReceive(Context context, Intent intent) {
String action = intent.getAction();

if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
Integer level = intent.getIntExtra("level", -1);
this.views.setTextViewText(R.id.battery_level, level.toString());
ComponentName cn =
new ComponentName(context, BatteroidAppWidgetProvider.class);
AppWidgetManager.getInstance(context).updateAppWidget(cn, this.views);
}
super.onReceive(context, intent);
}

我真的不知道为什么它在一段时间后停止获取 ACTION_BATTERY_CHANGED Intent 。它停止的值是完全随机的,因此调试是一场噩梦。

提前感谢您的帮助。

最佳答案

在 Intent.ACTION_POWER_DISCONNECTED 中意外记录了 ACTION_BATTERY_CHANGED 接收器仅在运行时接收通知,但在 ACTION_BATTERY_CHANGED 部分中未提及。所以,如果你的接收器没有连接到正在运行的进程,它就不会接收广播。如果您不希望有一个或多或少永久运行的进程,那么您可以像许多 App Widget 一样按计划更新,但这当然会导调用池电量变化和显示更新之间的潜在和可能的延迟,因为你已经看到了。

有开源电池小部件应用程序,包括 GeekYouUp's Battery WidgetSergej Shafarenka's Quick Battery .

我在 http://programmerbruce.blogspot.com/2011/05/fixing-geekyouups-battery-widget.html 上发布了对 GeekYouUp 电池小部件的更正和解释。 .

关于java - 我的小部件有时不会收到 ACTION_BATTERY_CHANGED Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6180168/

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