我有一个相当复杂的应用,在很多情况下会在post
上调用postDelayed
或Handler
方法。到目前为止,一切都很好。
但是,我担心当Android决定暂停/终止活动时,我可能还有一些非常重要的任务待执行。忽略它们会影响数据的完整性。
我知道onPause
类上的onDestroy
和Activity
调用,我已经将它们用于正常清理。但我不确定如何处理Handler
对象中的待处理内容。
我是否应该以某种方式从Handler获取所有待处理的并通过坐在onPause/onDestroy
内的循环中显式调用它们的run方法?
要么
Android是否有处理此方案的标准方法?
我非常需要关于这个问题的一些指导。 请帮忙。
-Androbean
答案 0 :(得分:0)
别无他法。 LifeCycle方法(onPause / Stop / Destroy)是标准方案。在那里,您可以清除所有可运行对象的回调:
Runnable runnable = new Runnable() {
@Override
public void run() {
}
};
handler.postDelayed(runnable, 100);
handler.removeCallbacks(runnable);
所以,它永远不会调用(如果它仍在等待运行)。
答案 1 :(得分:0)
首先,您必须了解活动的生命周期。 http://developer.android.com/intl/es/training/basics/activity-lifecycle/starting.html
不要寻找魔术,只要假设系统为您提供并选择合适的设计。