私はこのコードを使用して、1 時間ごとに (この例では 1 秒ごとに) 電子メール レポートを送信しようとしています。カバレッジがない場合は、1 時間以内などに再試行してください。何とか sendUnsendedReports() のタイマーを壊すことができました。1 回だけ起動します。sendUnsendedReports() の呼び出しを削除すると、タイマーは完全に機能します。周囲に try-catch ブロックがあっても、タイマーは 1 回しか起動しません。ご意見をお聞かせください。
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);
}