Tôi đang sử dụng trình xử lý trong chương trình sau và tôi muốn dừng nó khi i = 5 nhưng trình xử lý không dừng và chạy liên tục.Làm thế nào để dừng Handler Runnable?
b1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
handler = new Handler();
runnable = new Runnable() {
public void run() {
try {
Toast.makeText(getApplicationContext(), "Handler is working", Toast.LENGTH_LONG).show();
System.out.print("Handler is working");
if(i==5){
//Thread.currentThread().interrupt();
handler.removeCallbacks(runnable);
System.out.print("ok");
Toast.makeText(getApplicationContext(), "ok", Toast.LENGTH_LONG).show();
}
i++;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.postDelayed(this, 5000);
}
};
handler.postDelayed(runnable, 5000);
//return;
}
});
bạn đã có 'handler.removeCallbacks (runnable); 'http://developer.android.com/reference/android/os/Handler.html – Raghunandan
bạn cũng có thể sử dụng đếm ngược hẹn giờ một xử lý hoặc một nhiệm vụ hẹn giờ – Raghunandan
có thể trùng lặp của [hủy bỏ một quá trình handler.postdelayed] (http://stackoverflow.com/questions/4378533/cancelling-a-handler-postdelayed-process) – Varun