Android - 每隔几分钟做背景工作

时间:2011-07-07 11:20:59

标签: android android-service

我需要编写一些应用程序,每隔几分钟就会完成一些后台工作。我的问题是如何从服务开始这项工作。我是否需要使用Threads并使用某些System utils计算时间,或者是否有更好的解决方案?

3 个答案:

答案 0 :(得分:1)

您可以使用HandlerpostDelayed方法:

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable()
    public void run() {
       // your work
    }
}, minutes * 60 * 1000);

如果间隔足够长,您还可以考虑使用AlarmManager

答案 1 :(得分:1)

(似乎无法添加评论,所以添加作为答案)

因为这个任务将继续执行,所以我会像这样扩展Xion的例子:

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable()
  public void run() {
     // your work
     //...
     handler.postDelayed(this, minutes * 60 * 1000); //this will schedule the task again
  }
}, minutes * 60 * 1000);

答案 2 :(得分:0)

不,你不需要使用线程。您只需通过AlarmManager执行此操作即可。 有关参考,请参阅此链接,它将帮助您。 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/AlarmService.html