5
カレンダーウィジェットを開発中です。日付を変更したときにDATE_CHANGEDメッセージを受け取ることができません。MANUALLYAndroidウィジェットがDATE_CHANGEDメッセージを受け取れない
何が問題ですか?
マニフェストで私のコードは次のとおりです。
<receiver android:name="com.widget.calendar.CalendarWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.intent.action.DATE_CHANGED"/>
</intent-filter>
<!-- This specifies the widget provider info -->
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widgetinfo" />
</receiver>
そして、私はこのようにそれを受け取ることを試みた:
@Override
public void onReceive(Context ctx, Intent intent) {
final String action = intent.getAction();
if (action.equalsIgnoreCase("android.intent.action.DATE_CHANGED")) {
Log.e(TAG, "Date changed.....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
super.onReceive(ctx, intent);
}
しかし、私は手動でシステムの日付を変更するとログが印刷されていません。
ありがとうございます!
UPDATE:
私はそれが本当にDATE_CHANGEDのバグです、Intent.ACTION_TIME_CHANGEDでこれを解決しました。
が、これは時間が変更されるたび、それが何度も何度も、ブロードキャストレシーバを呼び出しますよう、あなたのバッテリーを消耗原因となります。 – Akram
@Akki私は、システムの時刻または日付を手動で変更しない限り、このTIME_SETインテントを送信しないことをテストしました。バッテリーはここで安全です:) – herbertD
このレシーバーは、ユーザーが手動で日付を変更したときに呼び出すことができますか? – Akram