如何在onCreate之外使用onBackPressed停止onCreate内部的处理程序?

时间:2019-01-30 07:05:23

标签: java android

我正在使用处理程序在onCreate内调用Runnable,并希望通过在onCreate之外使用onBackPressed来停止它。如何在onCreate之外停止Runnable函数?

我尝试在onCreate之外重写Runnable,但是它无法正常工作。

protected void onCreate(Bundle savedInstanceState) {
define Runnable and start Runnable
}

@Override
public void onBackPressed() {
stop Runnable
}

我希望onBackPressed可以在onCreate之外停止Runnable。

3 个答案:

答案 0 :(得分:2)

您可以通过删除回调来停止任何可运行的程序,使用

handler.removeCallbacks(runnableRunner);

如果要删除所有活动的回调,请使用

handler.removeCallbacksAndMessages(null);

答案 1 :(得分:1)

在MainThread上运行耗时超过几毫秒的Runnable是错误的,因为它冻结了接口。如果您的Runnable在其他线程中运行,则只需要向该特定线程发送“ mThread.interrupt()”命令以终止该线程即可。如果您不希望终止另一个线程,则必须在该线程中实现Messages,然后将特定的Message发送到其Handler。

答案 2 :(得分:0)

您可以通过以下方式停止可运行:-

mHandler.removeCallbacks(可运行);