【发布时间】:2011-05-30 19:40:18
【问题描述】:
晚上好, 我写了一篇关于如何编写小部件以在 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 意图。它停止的值是完全随机的,所以调试起来简直就是一场噩梦。
提前感谢您的帮助。
【问题讨论】:
标签: java android android-widget