2011-03-01 139 views
2

我有一個每天更新1次的android小部件(如providerinfo.xml文件中所述)。 這是,目前,我的onUpdate方法:Android Widget更新TextView文本

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) 
{ 
     RemoteViews rvs = new RemoteViews(context.getPackageName(), R.layout.main); 
     rvs.setTextViewText(R.id.textviewquote, "we updated! yay!"); 
     appWidgetManager.updateAppWidget(new ComponentName(context, main.class), rvs); 
} 

然而,我的TextView永遠不會改變。 onUpdate在開始的時候被調用,當widget第一次被創建的時候?那麼如何才能真正改變textview中的文本呢?

感謝

編輯: 提供信息:

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

和清單:

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

更新: 該方法的onUpdate()甚至沒有得到調用。有人能告訴我爲什麼嗎?

主要更新:在android 2.3中,onUpdate()方法不被調用,但在android 2.2中,它被調用。我想知道這是否是一個錯誤,或者他們改變了小工具的工作方式。

+0

你在哪裏設置更新頻率?在清單中還是通過AlarmManager? – skyman

+0

見編輯。謝謝! – Peanut

+0

您可以在onUpdate中放入一個日誌,以確保一旦您第一次添加小部件,它就會被調用。 – exception01

回答

-1

檢查我的更新:

主要更新:在Android 2.3的,對的onUpdate()方法不叫,但在Android 2.2系統,這就是所謂的。我想知道這是否是一個錯誤,或者他們改變了小工具的工作方式。

我接受這個答案。我們會看看谷歌是否對此做任何事情。