我需要编写一些应用程序,每隔几分钟就会完成一些后台工作。我的问题是如何从服务开始这项工作。我是否需要使用Threads并使用某些System utils计算时间,或者是否有更好的解决方案?
答案 0 :(得分:1)
您可以使用Handler
和postDelayed
方法:
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