即使应用程序在android中被杀死,处理程序实例如何运行runnable?

时间:2017-01-05 09:46:54

标签: android android-handler

在我的应用中,我在MainActivity中有一个处理程序。在此处理程序中,我从本地数据库获取时间戳值,将其值更改为当前时间戳并更新本地数据库。此事件每2分钟发生一次。

我的问题是当我的应用程序被杀死时不应该更新本地数据库。但是,处理程序中的代码运行甚至我的应用程序被杀死并更新了本地数据库中的时间戳值。因此,当我再次打开应用程序时,它不会在我的应用程序被杀之前向我提供存储在数据库中的最后一个时间戳值。

当我杀死我的应用程序时如何停止处理程序?如果解释我的处理程序如何正常工作,这是值得的。

源代码:

    addEventHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
                mockSpeedEventHandler.postDelayed(this, realTimeEventFrequency * 60 * 1000);
        }
    }, 60000);

1 个答案:

答案 0 :(得分:1)

我不确定你为什么使用2个处理程序,但是如果假设运行的代码是由第二个处理程序触发的。解决方案应该是停止addEventHandler和mockSpeedEventHandler。