2
我试图让我的应用程序每天都在同一时间执行一项任务。这是一个必须在后台完成的任务(上传文件)。我使用一个AsyncTask。 任何想法如何做任务? 我试图用AlarmManager来做,但我没有成功。定期执行任务
我试图让我的应用程序每天都在同一时间执行一项任务。这是一个必须在后台完成的任务(上传文件)。我使用一个AsyncTask。 任何想法如何做任务? 我试图用AlarmManager来做,但我没有成功。定期执行任务
我建议你使用Service
,在一天的特定时间在后台上传文件。
要正确调度服务,请使用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);
调度完成后,您的文件上传代码将在该服务中完成这项工作。
这是一个很好的解决方案......但这种事情完全是* SyncManager的设计目的。你可以考虑使用它。 –
你试过看[这里](http://developer.android.com/training/scheduling/alarms.html)? – user2340612
你可以发布你的代码吗? –