如果应用未运行,请在位置更改时执行代码

时间:2015-01-13 23:41:05

标签: android locationmanager location-provider

我正在编写一个小型的Android应用,需要在设计更改位置时执行一些代码。 我想知道是否有可能在位置更改上执行代码,即使应用程序没有运行(不是后台但已停止)。 我的意思是,当lat / lng发生变化时,是否有一些系统服务“唤醒”(或启动)我的应用程序(或我应用程序的特定活动)?

到目前为止,我已创建 locationManager ,设置一些条件提供商并设置 requestLocationUpdates 。这是有效的,但如果应用程序没有运行,我没有更新。

1 个答案:

答案 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