我希望能够实现一个服务,其工作是定期从互联网上获取更新。我知道有几种方法可以实现这个目的,以下列出其中两种,请告诉我哪一种更有效,并在实践中哪种方式更常见。提前感谢。
1. 在单独的线程中实现一个无限循环
1. 在单独的线程中实现一个无限循环
while(true)
,然后在服务的 onStartCommand
中运行此线程。伪代码如下:class Updater extends Service {
...
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
while (true){
// fetching update...
Thread.sleep(FOR_A_WHILE);
}
}
}).start();
}
...
}
2.定时触发AlarmManager
,以周期性方式触发一个IntentService
来获取更新。