Sto sviluppando un widget di calendario e non posso ricevere il messaggio DATE_CHANGED quando ho cambiato la data MANUALMENTE.Il widget Android non può ricevere il messaggio DATE_CHANGED
Qual è il problema?
Il mio codice nel manifesto è:
<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>
E ho cercato di ricevere in questo modo:
@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);
}
Ma il registro non viene stampata quando cambio la data di sistema manualmente.
Grazie!
UPDATE:
Ho risolto questo con Intent.ACTION_TIME_CHANGED, è davvero un bug di DATE_CHANGED.
ma questo causerà consumare la batteria come sarà chiamare di nuovo e di nuovo la trasmissione ricevitore ogni volta che il tempo cambierà. – Akram
@Akki Ho verificato che non invierà questo intento TIME_SET a meno che non modifichi manualmente l'ora o la data del sistema. Quindi la batteria è al sicuro qui. :) – herbertD
quindi vuoi chiamare questo ricevitore quando l'utente cambia manualmente la data? – Akram