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);
}
}