定期执行任务

时间:2014-03-01 17:03:22

标签: android

我正在尝试让我的应用程序每天同时执行任务。这是一项必须在后台完成的任务(上传文件)。我使用AsyncTask。 知道如何完成任务吗? 我尝试使用AlarmManager来做,但我还没有成功。

1 个答案:

答案 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. 完成计划后,该服务中的文件上传代码即可完成。