Tôi có bộ hẹn giờ trong ứng dụng của mình khởi chạy AsyncTask cứ 15 giây một lần.Android khởi chạy lại Bộ hẹn giờ sau khi chúng bị hủy
Timer timer = new Timer();
public void AsynchTaskTimer() {
final Handler handler = new Handler();
TimerTask timertask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
new updateGPSTask().execute();
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
});
}
};
timer.schedule(timertask, 0, 15000); // execute in every 15sec
}
Điều này được khởi chạy từ phương pháp onCreate()
.
Khi tôi gọi một hoạt động khác, tôi cần hủy hẹn giờ này, tôi đã sử dụng timer.cancel()
theo phương pháp onPause()
trong Hoạt động chính của mình.
Bây giờ khi tôi quay lại Hoạt động chính, tôi cần khởi động lại bộ hẹn giờ. Tôi đã thử khởi chạy lại AsynchTaskTimer()
theo phương pháp onRestart()
, nhưng tôi nhận được java.lang.IllegalStateException: Timer was canceled
.
Làm cách nào để khởi động lại bộ hẹn giờ?
đặt bộ hẹn giờ là không trong khi bật và tái tạo nó như timer = new Timer(); và khởi động nó như là đối tượng băm cũ đã bị hủy bỏ nó không thể được khởi động lại trừ khi bắt đầu lại một cái mới –
tại sao bạn sử dụng bộ xử lý và bộ hẹn giờ với nhau? – tony9099