我正在开发一个应用程序在android studio中,我必须保存设备的位置,我做了一个“locationService”类来扩展服务,所以位置被分割在我的服务器和服务将在后台。 我已阅读android文档,并有两种类型的服务(服务和链接服务),我使用链接服务,因为我需要在活动中显示位置数据。Android应用程序在后台
问题是,当我关闭应用程序,服务死亡,并没有记录位置的变化。
如何防止链接服务死亡。谢谢
我正在开发一个应用程序在android studio中,我必须保存设备的位置,我做了一个“locationService”类来扩展服务,所以位置被分割在我的服务器和服务将在后台。 我已阅读android文档,并有两种类型的服务(服务和链接服务),我使用链接服务,因为我需要在活动中显示位置数据。Android应用程序在后台
问题是,当我关闭应用程序,服务死亡,并没有记录位置的变化。
如何防止链接服务死亡。谢谢
我假设你的意思是“绑定”Service
,而不是“链接”Service
。当最后一个客户端与它断开连接时,绑定的Service
将停止运行。为了防止这种情况发生,您需要致电startService()
并确保您在Service
中从onStartCommand()
返回START_STICKY
。
您无需使用“绑定”Service
即可将Service
中的数据传递给Activity
。另一种方法是让您的Service
广播数据(将数据作为“额外”添加到Intent
中,并使用Intent
调用sendBroadcast()
)。然后您的Activity
可以设置BroadcastReceiver
来收听Service
的任何数据播放。
谢谢。 正确的术语是bundle,我已经在我的应用程序中实现了它,它工作正常,现在我想实现另一个功能,在后台我可以启动一个活动并显示所需的信息,但是当我最小化应用程序时家里,我不关闭它),我给你发送新的信息,我想把我的应用程序放在前台显示这些信息。 –
我假设你的意思是“绑定”,而不是“捆绑”。当你想把你的应用程序推到前台时,只需为你的应用程序获取一个“启动意图”,然后用这个函数调用'startActivity()'。它会将你的应用程序推向前台,以便你可以做你想做的事。请参阅https://stackoverflow.com/a/14137045/769265 –
谢谢。 我已经实现了这个方法,它已经工作了,现在我有另一个问题,在我的服务中我有一个布尔变量,开始的值为true,并从我的应用程序我命令它变为false,但是当我关闭应用程序,将服务作为重新启动发生并且我的变量返回到初始值(true)。 有一些方法我的服务不会“重新启动”。 –
请注意。 https://stackoverflow.com/a/3856940/6759520 – amuyu