Android Widget不会更新

时间:2011-11-25 05:11:11

标签: android android-widget

我有一个简单的Android小部件,只有一个文本视图。 我扩展了 AppWidgetProvider 类,小部件信息xml - appwidget-provider ...,还根据android网站上提供的文档更新了我的清单文件。 我还设置了ndroid:updatePeriodMillis to 1800020 (~30 minutes).

当我在屏幕上放置小部件时, onUpdate 方法下的所有代码首次触发。但在 1800020毫秒之后,onUpdate不会再次调用。我的小部件之后不会更新。我错过了什么吗?

我将AppWidgetProvider扩展如下,

public class Testwidget extends AppWidgetProvider {
int COUNT = 0;

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    Log.d("WIDGET", "====================== UPDATED ======================");
    super.onUpdate(context, appWidgetManager, appWidgetIds);

    for(int _i=0; _i<appWidgetIds.length; _i++){
        int _widId = appWidgetIds[_i];

        COUNT+=1;

        RemoteViews _views = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
        _views.setTextViewText(R.id.tvCount,String.valueOf(COUNT));

        appWidgetManager.updateAppWidget(_widId, _views);
    }
}
}

我的清单

<receiver android:name="Testwidget">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
        </intent-filter>
        <meta-data android:name="android.appwidget.provider"
            android:resource="@xml/widgetinfo"></meta-data>
    </receiver>

Appwidget Provider

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="272dp" android:minHeight="72dp"
android:updatePeriodMillis="1800020" android:initialLayout="@layout/widgetlayout">

</appwidget-provider>

3 个答案:

答案 0 :(得分:3)

您正在使用正确的数字作为毫秒。

但是无法保证更新将在这个时间间隔发生 - 它可能会被操作系统延迟(来自文档:“实际更新不能保证与此值完全准确地发生”)

答案 1 :(得分:2)

如果您没有使用任何服务,它将在您定义的毫秒后更新,使用服务或完整参考小部件的工作方式here.

答案 2 :(得分:0)

最短更新秒数为1800000(30分钟)。从那里,柜台重新设置为0,所以你必须再等30分钟。看看留下的link Pawan。