Android Java Runnable 不会停止

Android Java Runnable Will Not Stop

我试图让一个简单的 Runnable 每隔几秒执行一些代码,但是虽然我可以让它执行,但我无法让它停止。下面的代码显示了 2 个调用 startDbChecking()stopDbChecking(),我只是将它们放在代码块中以显示我正在尝试的内容 - 而不是代码的设置方式。

public class MainActivity extends TabActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startDbChecking(); // will run this no problem
        stopDbChecking(); // but will not stop
    }

    public void startDbChecking() {
        handler.post(runnableCode);
    }

    public void stopDbChecking() {
        handler.removeCallbacks(runnableCode);
    }


     private Runnable runnableCode = new Runnable() {
         @Override
         public void run() { 
            // Do something here on the main thread
            System.out.println("OK");

            handler.postDelayed(runnableCode, 2000);
         }
     };
 }

在你的 Activity 中试试这个:停止可运行的

 protected void onStop() {
    super.onStop();
    handler.removeCallbacks(runnableCode);
}