我正在编写一个使用location.LocationManager和LocationListener接收全球定位系统位置更新的安卓应用程序。应用程序更新MapActivity上的位置,并将协作者发送到restful风格的web服务。即使当MapActivity对用户不可见时,web服务也需要接收位置更新。
目前,我在app.Application中执行所有操作(UI除外),因为即使在MapActivity不可见的情况下,它仍保持活动状态。然而,我读过的所有文档都表明,app.Application用于存储状态,而不是执行更繁琐的任务。我尝试过使用app.Service,但它似乎过于复杂(生命周期、绑定、解绑),并且存在许多内存泄漏问题。我还没有找到任何明确禁止在app.Application中执行这类任务的文章或文档,所以我想知道这种方法是否有什么问题?
编辑:谢谢你的回复,看起来我得多花点时间弄明白app.Service了
发布于 2011-05-30 22:57:07
您可能应该使用服务。我认为应用程序的生命周期与其当前正在运行的任何组件都是绑定的。我猜想,进程监控器有权在其他地方需要资源时随意销毁您的应用程序,如果它没有运行任何应用程序或服务或其他任何东西。您可能会发现您的代码有时可以正常工作,但您会遇到意外的崩溃。
通常,最好使用Android为不同组件指定的模型
发布于 2011-05-30 22:55:58
一般来说,我认为使用应用程序是可以的:我已经广泛地使用了它。我要说的主要复杂之处在于,唯一的生命周期回调是onCreate:使用Service,您至少可以选择使用onDestroy回调干净利落地关闭它。
我承认,在Service上,生命周期可能有点令人困惑。如果Application对象为您工作,我不会因此而失眠。
https://stackoverflow.com/questions/6177775
复制相似问题