我遇到了一个问题,希望有人建议我一个解决方案。我正在使用
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
}});
延迟某些任务的方法很好。但是在延迟完成之前如果我回击它的崩溃,因为任务需要完成,期望已经关闭的活动的上下文。有人可以帮我解决这个问题吗?
由于
答案 0 :(得分:0)
你必须添加背靠后按下的事件,那时你已经停止所有过程,所以崩溃的问题都消失了。
如果您仍然感到困惑,请添加您的代码,以便我们为您提供帮助。
答案 1 :(得分:0)
保存对Runnable
的引用,并在您的一个生命周期方法中使用Handler#removeCallbacks(...)
,可能是onPause()
。如果任务需要比活动更长,请将其移至Service
。
答案 2 :(得分:0)
您可以在返回之前通过以下代码删除处理程序中的回调:
myHandler.removeCallbacks(yourRunnableInstance); // it will remove particular this Runnable
myHandler.removeCallbacksAndMessages(null); // it will remove all Runnable from the handler
你可以在onPause()方法中执行此代码。