他の多くの人と同じように、私は AppWidget ID を使用してウィジェットごとの構成を保存しています。残念ながら、これらの ID は 2 つの値の間で変動しているようです。
基本的に、サンプルの実行から次のことが起こっているようです。
- 構成アクティビティで作成されたアプリ ウィジェット
- ID = 70
- 10秒経過
- ID = 153
- Eclipse で新しい APK を再起動/インストールする
- ID = 70
その後、それはもはや変化していないようです。何が原因でしょうか? 関連するコード スニペットを以下に示しますAlarmManager
。
AppWidgetProvider
service = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
設定アクティビティ
Bundle extras = getIntent().getExtras();
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
AppWidgetManager widgetManager = AppWidgetManager.getInstance(this);
ComponentName widget = new ComponentName(getPackageName(), WidgetConfigActivity.class.getName());
int[] widgetIds = widgetManager.getAppWidgetIds(widget);
// Store the configuration for this widget
SharedPreferences.Editor prefsEdit = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
// Some settings here
prefsEdit.commit();
// Send initial update request
Intent initialUpdate = new Intent(this, WidgetProvider.class);
initialUpdate.setAction("android.appwidget.action.APPWIDGET_UPDATE");
initialUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
sendBroadcast(initialUpdate);