我有這段代碼,我想嘗試每小時發送一次電子郵件報告(在這個例子中是每秒一次)。如果沒有覆蓋範圍,請在一小時內再試一次等等。不知何故,我設法在sendUnsendedReports()中打破計時器:它只觸發一次。如果我刪除了對sendUnsendedReports()的調用,那麼定時器運行完美。即使使用try-catch塊,計時器也只會觸發一次。請指教。Android定時器只會觸發一次
private void createAndScheduleSendReport() {
delayedSendTimer = new Timer();
delayedSendTimer.schedule(new TimerTask() {
@Override
public void run() {
Log.w("UrenRegistratie", "Try to send e-mail...");
try{
sendUnsendedReports();
}
catch(Exception e){
// added try catch block to be sure of uninterupted execution
}
Log.w("UrenRegistratie", "Mail scheduler goes to sleep.");
}
}, 0, 1000);
}
找到......所以你這是在做sendunsendedreports()?似乎是那個你應該看的地方。 –
...至少你應該記錄你(可能)遇到的任何異常。 –
不應該不可能打破計時器?在sendUnsendedReports()中,我將關閉飛行模式,休眠幾秒鐘,產生一些xml報告並嘗試使用gmail發送它並再次打開飛行模式。 – Harmen