Android App小部件未更新

时间:2012-08-28 14:41:12

标签: android android-widget android-manifest

我已经看到其他几个关于小部件没有更新的问题,但是所有这些问题都是因为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);

    }
}

1 个答案:

答案 0 :(得分:3)

我想向社区道歉这个不必要的问题,因为看起来最终我的手机正在起作用(考虑到我重启了这件事)或者我只是有点住院病人。

看起来,onUpdate开始被框架调用真的需要几个小时。在过去的3个小时里(我之前正在睡觉),我可以非常一致地看到更新的内容。

我没有删除这个问题,以防有人遇到同样的问题,你真的要等了!

感谢。