我正在编写一个小型的Android应用,需要在设计更改位置时执行一些代码。 我想知道是否有可能在位置更改上执行代码,即使应用程序没有运行(不是后台但已停止)。 我的意思是,当lat / lng发生变化时,是否有一些系统服务“唤醒”(或启动)我的应用程序(或我应用程序的特定活动)?
到目前为止,我已创建 locationManager ,设置一些条件,提供商并设置 requestLocationUpdates 。这是有效的,但如果应用程序没有运行,我没有更新。
答案 0 :(得分:2)
您需要创建一个通知更新的Service
。服务在"背景"即使你的应用没有运行。
这可能会变得复杂,因为当用户在您的应用中时,如果您希望应用更新,则活动需要bind
到该服务。
这是一个教程:
http://www.vogella.com/tutorials/AndroidServices/article.html
官方文档也很好:
http://developer.android.com/reference/android/app/Service.html
小心 - 当内存不足时,Android可以关闭服务。用户还可以强制停止"你的应用。不要以为它总是在运行,但你可以假设它在大部分时间都在运行。
并注意服务生命周期 - 它与和活动不同:
http://developer.android.com/guide/components/services.html#Lifecycle