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);
}
我试图让一个简单的 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);
}