ウィジェットは、ホーム画面に追加されたときに呼び出される特別なアクティビティを持つことができます。そのアクティビティは、アクティビティの「onCreate」メソッドで受け取ったウィジェット ID を使用して SUCCESS インテントを返すか、ウィジェット自体の作成を防止したい場合は RESULT_CANCELED を返すことができます。
android:configure
XML の属性に構成アクティビティ クラスを追加し、AndroidManifest のアクティビティ宣言にappwidget-provider
インテント フィルターを追加するだけです。http://developer.android.com/guide/topics/appwidgets/index.html#Configuringandroid.appwidget.action.APPWIDGET_CONFIGURE
で詳しく説明されています
受け取ったインテントにはウィジェット ID があります。
public void onCreate(Bundle savedInstanceState) {
...
int widgetID = getIntent().getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
...
}
次に、アクティビティを終了するか、次の方法setResult(RESULT_CANCELED);
でウィジェットの作成を確認できます。
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
setResult(RESULT_OK, resultValue);
そのアクティビティからすべてのウィジェット設定を行うことができます。
一方、すべてのウィジェット インスタンスに対して 1 回だけ行う必要がある他のセットアップを実行する場合は、http://developer.android.com/guide/ で説明されているように、AppWidgetProvider クラスのメソッドで行うことができますonEnabled
。topic/appwidgets/index.html#AppWidgetProvider