ウィジェットコンポーネントの開発
1.1 実験目的
Android ウィジェット コンポーネントのアプリケーションをマスターし、ウィジェット コンポーネントの基本的なアプリケーション、ウィジェットの構成、およびタイム カウントダウンを実装するためのウィジェットとサービスの組み合わせを練習します。
1.2 実験手順
1. Android アプリケーションを作成し、ウィジェットの基本的な使い方を練習します。
2. TextView と ImageButton の 2 つのコントロールをレイアウト ファイルに追加します。
3. res の下に xml フォルダーを作成し、widget_template.xml メタデータを作成します
4. WidgetProvider.java ファイルを追加します
5. ウィジェットの設定を練習し、アクティビティ (ConfigActivity.java) を追加します。
6. ConfigActivity.javaに対応するwidget_config.xmlレイアウトファイルを追加します。
7. 設定コードをメタデータ ファイル widget_template.xml に追加します。
8. WidgetProvider.java ファイルに updateTextColor を追加します。
9. AndroidManifest.xmlにConfigActivity.javaを登録
10. ウィジェットとサービスの練習、TRandomService.java の追加
11. AndroidManifest.xmlにTRandomService.javaを登録
12. WidgetProvider.java ファイルを変更します。
1.3 实验代码
1. プロジェクトを作成する
2.ウィジェット基本アプリ(SimpleWidget)
2.1 activity_main.xml の名前を widget_layout.xml に変更し、MainActivity.java を削除し、AndroidManifest.xml 内の登録コードを削除します。
2.2 res の下に xml フォルダーを作成し、widget_template.xml メタデータを作成します
2.3 WidgetProvider.java ファイルの追加
3 ウィジェットの設定を練習する
3.1 新しいアクティビティの追加 (ConfigActivity.java)
3.2 ConfigActivity.javaに対応するwidget_config.xmlレイアウトファイルを追加
3.3 widget_template.xml に構成コードを追加する
3.4 WidgetProvider.java ファイルを追加する
3.5 AndroidManifest.xmlにConfigActivity.javaを登録する
4 ウィジェットとサービス (ServiceWidget)
4.1 TRandomService.javaの追加
4.2 AndroidManifest.xmlにTRandomService.javaを登録する
4.3 WidgetProvider.java ファイルを変更する
実験効果
1.4 実験の概要
1. ウィジェット
ウィジェットは、天気、メモ、カレンダー、フロー制御などを含む、デスクトップに配置できるコンポーネントです。 。
2.AppWidgetフレームワーククラス
(1)AppWidgetProvider :
BroadcastRecevier から継承され、AppWidget が更新、有効化、無効化、削除を適用したときに通知を受け取ります。このうち、onUpdate と onReceive は最もよく使用されるメソッドであり、更新通知を受け取ります。
(2) AppWidgetProvderInfo:
AppWidget のサイズ、更新頻度、初期インターフェイスを記述する情報は、アプリケーションの res/xml/ ディレクトリに XML ファイルの形式で存在します。
(3)AppWidgetManager :
AppWidget の管理と AppwidgetProvider への通知の送信を担当します。
(4)RemoteViews:
他のアプリケーション プロセスで実行し、AppWidgetProvider に通知を送信できるクラス。
3.minWidth: Wdiget コンポーネントの幅を定義します
minHeight: Wdiget コンポーネントの高さを定義します
updatePeriodMillis: 更新期間
InitialLayout: ウィジェットのレイアウト ファイル
4.AppWidgetProvider:
これは実際には BroadcastReceiver であり、次の機能を提供します。
onReceive(コンテキスト、インテント)
onUpdate(Context , AppWidgetManager, int[] appWidgetIds)
onEnabled(コンテキスト)
onDeleted(Context, int[] appWidgetIds)
onDisabled(コンテキスト)
上記の関数を書き換えて、ウィジェットのステータスの変化を監視し、それに応じて処理することができます。