2014-03-01 72 views
2

我試圖讓我的應用程序每天都在同一時間執行一項任務。這是一個必須在後臺完成的任務(上傳文件)。我使用一個AsyncTask。 任何想法如何做任務? 我試圖用AlarmManager來做,但我沒有成功。定期執行任務

+4

你試過看[這裏](http://developer.android.com/training/scheduling/alarms.html)? – user2340612

+0

你可以發佈你的代碼嗎? –

回答

1

我建議你使用Service,在一天的特定時間在後臺上傳文件。

  1. 要正確調度服務,請使用AlarmManager類,如圖所示。

    Calendar cal = Calendar.getInstance(); 
    
    // Set upload time to be 11 am 
    cal.set(Calendar.HOUR_OF_DAY, 11); 
    cal.set(Calendar.MINUTE, 0); 
    cal.set(Calendar.SECOND, 0); 
    
    // 24 hours interval 
    long interval = 24*60*60*1000; // Or use AlarmManager.INTERVAL_DAY 
    
    Intent intent = new Intent(this, YourService.class); 
    PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0); 
    
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);  
    //Start every 24 hours (once in a day) 
    alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), interval, pintent); 
    
  2. 調度完成後,您的文件上傳代碼將在該服務中完成這項工作。

+0

這是一個很好的解決方案......但這種事情完全是* SyncManager的設計目的。你可以考慮使用它。 –