2011-11-25 154 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離開了。