Android学習ノート--アプリケーションにAppWidgetを追加


この文書はhttp://blog.csdn.net/chenshaoyang0011 転載は文章の出所を明らかにしてください!
Android通知システムはその大きな特色であり、AppWidgetはそのハイライトである.アプリケーションの開発では、デスクトップにAppWidgetを追加して表示することが多く、ユーザーとタイムリーに容易に行うことができます.
ダイアログが表示されます.ここではAppWidgetを開発する流れを簡単に熟知しましょう.
アプリケーションにAppWidgetを作成するには、少なくとも以下のものが必要です.
1.AppWidgetProviderInfoを作成し、AppWidgetのメタデータを記述する必要があります.2、独自のAppWidgetProviderでAppWidgetを更新するなどの操作が必要です.2、レイアウトファイルが必要
AppWidgetのレイアウトについて説明します.
では、AppWidgetの作成を始めましょう.
一、AndroidManifest.xmlでAppWidgetを宣言する
まずAndroidManifest.xmlでAppWidgetProviderを宣言する必要があります.フォーマットは次のとおりです.

    
        
    
    
AppWidgetProviderは、特定のBroadcastを受信するBroadcastReceiverであることがわかります.ラベルにはAppWidgetで使用されるメタデータが記述され、android:resourceはメタデータを定義するxmlファイルの場所を宣言します.
二、AppWidgetProviderInfoメタデータの追加
AppWidgetProviderInfoは、AppWidgetの更新サイクル、最小幅、長さ、使用するレイアウトファイルが何であるか、AppWidgetを追加するために起動する必要があるかなど、AppWidgetProviderInfoの本質的な特性を説明します.
configuration Activityなど.AppWidgetProviderInfoオブジェクトをXMLで定義する必要があります.このXMLファイルはres/xmlフォルダの下に保存する必要があります.次の例を示します.

このラベルを使用してAppWidgetProviderInfoを定義する必要があります.次に、例で使用したプロパティについて説明します.
minWidth、minHeightは、AppWidgetが占有する必要がある最小の空間を定義します.
updatePeriodMillisは、AppWidgetが更新するのにどれくらいの時間がかかるかを定義しています.ここで定義されているのは、システムが正確な保証をすることはできません.
previewImageは、ユーザーがAppWidgetを選択したときに現実的なアイコンを定義します.
InitialLayoutは、AppWidgetで使用されるレイアウトファイルを定義します.
configureは、AppWidgetが追加するときに起動するconfiguration Activityを定義して構成を実行します.
resizeModeはスケールモードを定義します.
三、AppWidgetで使用するレイアウトファイルの作成
AppWidgetを作成するときは、レイアウトの説明を提供するレイアウトファイルを作成する必要があります.AppWidgetがビューを作成する場合は、RemoteViewに基づいて作成する必要があります.効率などの要因から、多くのコントロールは
RemoteViewsではサポートされています.RemoteViewsで使用できるUIコントロールを以下に示します.
layout : FrameLayout , LinearLayout , RelativeLayout
widget : AnalogClock , Button , Chronometer , ImageButton , ImageView , ProgressBar , TextView , ViewFlipper , ListView , GridView , StackView , AdapterViewFlipper
四、AppWidgetProviderのサブクラスを作成する
前述したAppWidgetProviderはBroadcastReceiverです.はい、BroadcastReceiverから継承されていますが、AppWidgetのブロードキャストをより便利に処理するためにパッケージされています.
AppWidgetProviderは、AppWidgetのブロードキャストを受信すると、タイプに応じて次のいくつかの方法をトリガーします.
onUpdate():AppWidgetが更新する必要がある場合、このメソッドがトリガーされます.このメソッドを書き直し、更新の操作を実現する必要があります.configuration Activityが定義されていない場合は、AppWidgetを追加します.
を選択すると、このメソッドもトリガーされます.
onDelete(Context,int[]):AppWidgetがAppWidgetHostから削除されると、このメソッドがトリガーされます.
onEnabled(Context):1つのアプリケーションに複数のAppWidgetを追加した場合、このメソッドは最初のAppWidgetが追加された場合にのみ呼び出されます.
onDisabled(Context):アプリケーションの最後のAppWidgetがAppWidgetHostから削除されると、このメソッドがトリガーされます.
onReceive(Context,Intent):これは実際にはBroadcastReceiverのメソッドであり、いずれかのBroadcastが受信されると、このメソッドが呼び出され、上記のコールバックメソッドの前に呼び出されます.
五、コンフィギュレーションActivityを作成する(オプション)
AppWidgetの追加が必要な場合は、コンフィギュレーションActivityを使用します.コンフィギュレーションActivityを使用するには、まず通常のActivityのようにAndroidManifest.xmlで
次のように宣言します.

    
        
    
ここでactionタイプをandroid.appwidget.action.APPWIDGET_と追加する必要があるだけですCONFIGREのintent-filter.次に、AppWidgetProviderInfoで宣言する必要があります.

最後に、Activityを作成する必要があります.Configuration Activityでは、必要な操作をいくつか実行する必要があります.
1、AppWidget IDの取得
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
    mAppWidgetId = extras.getInt(
            AppWidgetManager.EXTRA_APPWIDGET_ID, 
            AppWidgetManager.INVALID_APPWIDGET_ID);
}

2、必要な配置操作を行う.
3、AppWidgetManagerインスタンスの取得、RemoteViewの更新
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.example_appwidget);
appWidgetManager.updateAppWidget(mAppWidgetId, views);

4、Activity resultを設定し、Intentを返します.
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
finish();
はこのようにしてコンフィギュレーションActivityを作成しました.
上記の手順を実行すると、デスクトップに表示できるAppWidgetが作成されました.
最後に、AppWidgetの使用を理解するのに役立つ小さなdemoを添付します:demoダウンロードリンク