2011-11-25 83 views
1

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

当我小部件放置在屏幕下方的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提供商

<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> 
+0

提供一些代码你试过了什么? – user370305

+0

180000 = 30分钟 – bwoogie

+0

你可以试试1800更新吗?并看看会发生什么。 – user370305

回答

2

如果你不使用任何服务这将是毫秒之后更新你已经定义了如何使用服务或完整的引用如何Widget工作看起来here.

3

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

但是不能保证更新正好在这个时间间隔发生 - 它可能会被操作系统延迟(从文档:“实际更新不保证准确按时发生此值”)

0

最低更新时间为1800000(30分钟)。从那里在柜台设置为0,所以你必须再等30分钟。看看link Pawan离开了。