2012-04-14 100 views
0

對不起,我英語不好。麻煩在Java TimerTask間隔

我在創建Android應用程序時實現Java TimerTask。代碼不復雜。當它達到時間間隔時,它將發送一條SMS &電子郵件。

我有一些選擇發送短信/電子郵件的時間間隔。 5分鐘,15分鐘,30分鐘,1小時和2小時。

我試了5分鐘,15分鐘(我把它轉換成milis),沒有發生任何問題。它每隔5-15分鐘就發送一次短信和電子郵件。我證明我使用timertask沒有問題。

但是,當我將其更改爲30分鐘或更長時間。我的應用程序不能發送短信/電子郵件。它看起來像定時器不能正常工作。

使用Timer任務時是否有任何間隔限制?

這是我的代碼片段。

private void activateNotificationByInterval(int notificationInterval) { 
    timerNotificationByInterval = new Timer(); 
    timerNotificationByInterval.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      // coba 
      // if (oldLatitude != childLatitude 
      // && oldLongitude != childLongitude) { 
      if ((enableSMS == true)) { 
       sendSMS(); 
      } 

      if ((enableEmail == true)) { 
       GMailSender email = new GMailSender(sender, senderPassword); 
       try { 
        email.sendMail(emailSubject + childsName, SMSMessage 
          + " " + childlLocation + "\nLatitude: " 
          + childLatitude + "\nLongitude: " 
          + childLongitude, sender, destination); 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
      mpv.changeLastLocation(childLatitude, childLongitude); 
      // buat method untuk menangkap lokasi pertama 
      oldLatitude = childLatitude; 
      oldLongitude = childLongitude; 
      // } else { 
      // System.out.println("Lokasi Lama Berpengaruh"); 
      // } 

     } 
    }, 0, notificationInterval); 
} 

*注:notificationInterval上milis(* 60000)

,你能告訴我該怎麼解決呢?謝謝。

+0

TimerTask的被殺了一段時間後,不要在某些設備上正常工作。你應該去AlarmManager。 – Shehzad 2012-04-14 20:08:53

+0

感謝您的建議。我會嘗試AlarmManager – farissyariati 2012-04-14 20:22:49

回答