【发布时间】:2016-02-21 13:43:01
【问题描述】:
我已经用 Google 搜索过了,所有主题都说相同的解决方案 handler.removeCallbacks(null) 或 handler.removeCallbacksAndMessages(null)。但他们都没有为我工作。
Handler handler;
Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
time -= 100;
if(time == 0){
Intent i = new Intent(Question.this, WrongAnswer.class);
startActivity(i);
finish();
}
else{
handler.postDelayed(this, 100);
}
}
};
handler.postDelayed(runnable,3000);
//...
}
这是活动在时间用完之前退出的情况:
if(myAnswer == correctAnswer)
{
Intent i = new Intent(this, CorrectAnswer.class);
startActivity(i);
handler.removeCallbacksAndMessages(null);
finish();
}
【问题讨论】:
-
使用 handler.removeCallbacks(runnable) 代替。
-
我尝试过使用 handler.removeCallbacks(runnable) 但出现同样的问题
-
即使您在可运行对象中调用完成,您的处理程序仍在运行?这不会停止当前的活动吗?
-
首先我运行切换到另一个活动的意图,然后我使用 handler.removeCallbacksAndMessages(null) 停止处理程序,但在我的情况下它不起作用。然后我使用 finish() 退出上一个活动。
-
可能是由于意图而发生的事情。据我在其他帖子中看到的,他们没有使用意图
标签: java android handler runnable