我正在學習如何創建小部件,但我堅持了這一點。我有一個包含一個按鈕的小部件,點擊後會啓動一個活動。但有兩個活動可能啓動,這取決於布爾值。如果當前Activity是MainActivity,則布爾值爲true,否則爲false。但是當點擊按鈕時,看起來布爾值在這裏不會更新爲新值。難道我做錯了什麼。任何幫助將被賞識。如何在執行小部件動作之前檢查值是否已更改
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds)
{
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++)
{
final int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.rz_widget_layout);
Intent intent=null;
if(MainActivity.WidgetAppLuancherChecker){intent= new Intent(context, MainActivity.class);}
else{intent= new Intent(context, ActivityB.class);}
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.LaunchApp, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
清單
<receiver android:name="com.AppWidget.ApWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/info_widget_layout" />
</receiver>
上面的代碼應該工作,什麼是iisue呢? – IshRoid 2015-03-31 06:54:19
布爾值保留其默認值,不更新:/ – 2015-03-31 06:55:05
更新布爾值時,我應該調用某個函數嗎? – 2015-03-31 06:55:26