1.レイアウト画面の作成
通常アプリ同様 layout/xml 以下にレイアウトを作成する
2. res/xmlフォルダに、appwidget-provider設定ファイルの作成
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="72dip" android:minHeight="72dip" android:updatePeriodMillis="60000" android:initialLayout="@layout/レイアウトのXMLファイル(.xmlは不要)" />
○サイズ指定(単位はdip)
・n dip = 74 x n - 2
・nはブロック数。nは1~4まで
・更新間隔(android:updatePeriodMillis)
・30分以下は30分として扱われる
・ミリ秒間隔で、onUpdate()が呼ばれる
・バッググラウンドでも更新が発生する
・0を指定すると、onUpdate()メソッドは一度だけ呼ばれる。
onUpdeteで呼ばれると、インスタンスが再生成されることに注意。
パラメータは、static にすれば保持できる
3.AndroidManifest.xmlの編集
<receiver android:name="クラス名" android:label="アプリ名"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/設定用XMLファイル(.xmlは不要)" /> </receiver>
4.コードを記述
AppWidgetProvider を継承したクラスを作成する
public class WordsWidgets extends AppWidgetProvider { @Override public void onEnabled(Context context) { super.onEnabled(context); } @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); } @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); } @Override public void onDisabled(Context context) { super.onDisabled(context); } @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); } }