В моем приложении у меня есть обработчик в MainActivity. В этом обработчике я получаю значение timestamp из локальной базы данных, меняю его значение на текущую временную метку и обновляю локальную базу данных. Это событие происходит каждые 2 минуты.Как экземпляр обработчика запускает runnable, даже приложение убито в android?
Моя проблема заключается в том, что локальная база данных не должна обновляться, когда мое приложение убито. Но, код в обработчике работает даже мое приложение убито и обновлено значение timestamp в локальной базе данных. Поэтому, когда я снова открываю приложение, это не дает мне последнее значение временной метки, которое хранится в базе данных до того, как мое приложение будет убито.
Как остановить обработчик, когда я убью свое приложение? Стоит объяснить, как работает обработчик.
Исходный код:
addEventHandler.postDelayed(new Runnable() {
@Override
public void run() {
mockSpeedEventHandler.postDelayed(this, realTimeEventFrequency * 60 * 1000);
}
}, 60000);
У вас есть этот 'handler.removeCallbacksAndMessages (null)' в 'onStop()' или в любом другом месте в активности? – Raghunandan
Я остановил addEventHandler в onDestroy(), вызвав addEventHandler.removeCallbacksAndMessages (null); – Madhan