我已经看到其他几个关于小部件没有更新的问题,但是所有这些问题都是因为updatePeriodMillis被配置为小于30分钟的值而且我已经将我的设置为1小时并且现在已经检查了几个小时。
我已经从我的实际小部件项目开始了一个单独的项目,只是为了测试更新而我无处可去。
小部件只是使用currentTimeMillis()更新TextView。
的AndroidManifest.xml
<receiver android:name="TestWidget" android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:resource="@xml/widget" android:name="android.appwidget.provider"/>
</receiver>
widget.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget"
android:minHeight="40dp"
android:minWidth="250dp"
android:updatePeriodMillis="3600000" >
</appwidget-provider>
第一次调用时一切正常,但是再也不会再调用onUpdate。
有什么建议吗?
编辑:
TestWidget.class仅覆盖onUpdate
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
// Inflate the layout
RemoteViews v = new RemoteViews(context.getPackageName(),
R.layout.widget);
v.setTextViewText(R.id.text1, Double.toString(Math.random()));
v.setTextViewText(R.id.text2,
Long.toString(System.currentTimeMillis()));
// Update the widget
appWidgetManager.updateAppWidget(appWidgetIds[i], v);
}
}
答案 0 :(得分:3)
我想向社区道歉这个不必要的问题,因为看起来最终我的手机正在起作用(考虑到我重启了这件事)或者我只是有点住院病人。
看起来,onUpdate开始被框架调用真的需要几个小时。在过去的3个小时里(我之前正在睡觉),我可以非常一致地看到更新的内容。
我没有删除这个问题,以防有人遇到同样的问题,你真的要等了!
感谢。