Дата и время изменения прослушивателя в Android?
в моем приложении есть служба сигнализации, и я считаю, что если пользователь изменяет дату или время на прошедшее время. Моя тревога не будет срабатывать в то время, когда я ожидаю.
Итак, мне, возможно, придется снова сбросить все тревоги. Есть ли слушатель изменения даты и времени в android?
2 ответов:
Создать фильтр намерениях :
static { s_intentFilter = new IntentFilter(); s_intentFilter.addAction(Intent.ACTION_TIME_TICK); s_intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); s_intentFilter.addAction(Intent.ACTION_TIME_CHANGED); }и широковещательный приемник:
private final BroadcastReceiver m_timeChangedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(Intent.ACTION_TIME_CHANGED) || action.equals(Intent.ACTION_TIMEZONE_CHANGED)) { doWorkSon(); } } };Регистрация приемника:
public void onCreate() { super.onCreate(); registerReceiver(m_timeChangedReceiver, s_intentFilter); }EDIT:
и отменить его регистрацию:
public void onDestroy() { super.onDestroy(); unregisterReceiver(m_timeChangedReceiver); }
В дополнение к принятому ответу
если вы хотите слушать изменения времени пока ваше приложение не работает Я бы зарегистрировался в манифесте:
<receiver android:name="com.your.pacakge.TimeChangeBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.TIME_SET"/> <action android:name="android.intent.action.TIMEZONE_CHANGED"/> </intent-filter> </receiver>если вы это сделаете, не регистрируйте явно приемник в коде с помощью
registerReceiverиunregisterReceiver.опять же, это просто дополнение к принятому ответу.
Comments