初めてウィジェットを作成しましたが、更新時に設定する必要がある部分に到達するまで、すべてうまくいきました。私の質問を明確にするための私のコードは次のとおりです。
Android マニフェスト:
<receiver android:name="com.whizzapps.stpsurniki.widget.UrnikWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/app_widget_info"/>
</receiver>
アプリ ウィジェット プロバイダー XML:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="80dp"
android:minHeight="40dp"
android:updatePeriodMillis="10"
android:initialLayout="@layout/app_widget"
android:widgetCategory="home_screen" >
</appwidget-provider>
AppWidgetProvider クラス:
public class UrnikWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
Log.i("TAG", "onUpdate");
}
}
特定の単語を表示する TextView を含む単純なウィジェットを作成しましたが、ウィジェットの操作方法をまだ学んでいるので、ロジックはまだありません。ご覧のとおり、onUpdate が実際にいつ呼び出されるかを確認するために log.i を作成しました。私の問題は、ウィジェットをホーム画面に初めて配置したときにのみ呼び出されることです。
10 ミリ秒の更新間隔は短すぎて、バッテリーの消耗のために使用すべきではないことはわかっていますが、テスト目的のためだけに 10 ミリ秒を使用しています。
onUpdate が 10 ミリ秒ごとではなく 1 回しか実行されないのはなぜですか? また、特定の時間にのみ更新する必要がある場合、ウィジェットを更新する最良の方法は何ですか? ウィジェットを午前 7 時、午前 8 時、午後 3 時に更新する必要があるとします。これは可能ですか?ありがとうございました!