2017-09-28 76 views
2

我正在开发一个应用程序在android studio中,我必须保存设备的位置,我做了一个“locationService”类来扩展服务,所以位置被分割在我的服务器和服务将在后台。 我已阅读android文档,并有两种类型的服务(服务和链接服务),我使用链接服务,因为我需要在活动中显示位置数据。Android应用程序在后台

问题是,当我关闭应用程序,服务死亡,并没有记录位置的变化。

如何防止链接服务死亡。谢谢

+0

请注意。 https://stackoverflow.com/a/3856940/6759520 – amuyu

回答

0

我假设你的意思是“绑定”Service,而不是“链接”Service。当最后一个客户端与它断开连接时,绑定的Service将停止运行。为了防止这种情况发生,您需要致电startService()并确保您在Service中从onStartCommand()返回START_STICKY

您无需使用“绑定”Service即可将Service中的数据传递给Activity。另一种方法是让您的Service广播数据(将数据作为“额外”添加到Intent中,并使用Intent调用sendBroadcast())。然后您的Activity可以设置BroadcastReceiver来收听Service的任何数据播放。

+0

谢谢。 正确的术语是bundle,我已经在我的应用程序中实现了它,它工作正常,现在我想实现另一个功能,在后台我可以启动一个活动并显示所需的信息,但是当我最小化应用程序时家里,我不关闭它),我给你发送新的信息,我想把我的应用程序放在前台显示这些信息。 –

+0

我假设你的意思是“绑定”,而不是“捆绑”。当你想把你的应用程序推到前台时,只需为你的应用程序获取一个“启动意图”,然后用这个函数调用'startActivity()'。它会将你的应用程序推向前台,以便你可以做你想做的事。请参阅https://stackoverflow.com/a/14137045/769265 –

+0

谢谢。 我已经实现了这个方法,它已经工作了,现在我有另一个问题,在我的服务中我有一个布尔变量,开始的值为true,并从我的应用程序我命令它变为false,但是当我关闭应用程序,将服务作为重新启动发生并且我的变量返回到初始值(true)。 有一些方法我的服务不会“重新启动”。 –

相关问题