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