我目前正试图让代码作为后台服务运行。这段代码的作用是:
- 向服务器发送用户当前位置的请求 <
- 接收响应/gh><
- 解析响应/gh>
- save into model (singleton)
,并将其设置为一次又一次地以30秒的间隔发生。
现在,如果我的应用程序在后台停留太长时间,它将被设备处理,代码将不再执行。对于这种情况,什么样的后台服务才是正确的呢?
我主要关心的问题之一是我将数据保存在单例中。但如果我的应用被处置了,这个单例可能就不存在了。
intent service没有意义,因为它运行的是一次性任务,并且必须从一个可能已经被处理的应用中重启。使用警报管理器意味着我将不得不保存应用程序中的所有内容(例如sqlite),然后在活动再次启动时检索该数据,这听起来相当复杂。
有人能帮我一下吗?提前感谢!
您需要GCM的服务https://developers.google.com/cloud-messaging/
这正是你所需要的你的愿望;)
但这并不比坚持后台服务简单。
你也可以做一个Hack:有两个服务监视你的服务保持运行和它自己…我发誓,当用户没有在菜单中手动停止你的应用程序时,系统将无法停止他们自己。万无一失。