服务中的计时器与线程睡眠
我需要每 15 分钟检查一次提要 RSS 文件,以便更新我的应用程序的结果;我知道我必须实现一项服务,但我想知道应该使用哪种方法来执行此操作;实现计时器是否更好(http://developerlife.com/tutorials/?p=356) 或服务内的线程 (http://www.youtube.com/watch?v=yfWsp9IHX1Y)? 我尝试了第一个教程,但收到错误“无法在 Android 中调用 Looper 准备的线程内创建处理程序”... 我应该怎么办?坚持第一种方法还是尝试另一种方法?
I need to check every 15 minutes a feed RSS file in order to update my application's results; I know I have to implement a service, but I was wondering which approach I should use to do this; is it better to implement a timer (http://developerlife.com/tutorials/?p=356) or a thread inside the service (http://www.youtube.com/watch?v=yfWsp9IHX1Y)?
I tried the first tutorial but I get the error "Can’t create handler inside thread that has not called Looper prepare in Android"...
What should I do? Stay stick with the first method or try the other one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用 PendingIntent 并将其注册到 AlarmManager 将在未来 15 分钟后启动。这样,您的应用程序在警报触发之前不会使用任何资源。
您需要使用启动 Service 的 Intent 来创建 PendingIntent。服务完成后,您需要重新注册 PendingIntent 以便下次执行服务。
You should use a PendingIntent and register it with the AlarmManager to be started 15 minutes in the future. This way your app won't use any ressources until the alarm fires.
You need to use the Intent that starts your Service to create the PendingIntent. After your service finished you need to reregister the PendingIntent for the next execution of your service.