后台的Android应用程序
我正在android studio中开发一个应用程序,我必须保存设备的位置,我做了一个扩展服务的“locationService”类,因此位置在我的服务器上被分割,服务将在后台。 我已经阅读了android文档,有两种类型的服务(服务和链接服务),我使用链接服务是因为我需要在活动中显示位置数据 问题是,当我关闭应用程序时,服务将终止,并且不会记录位置的更改 如何防止链接服务死亡。谢谢我想你指的是“绑定的”后台的Android应用程序,android,android-activity,background,android-service,Android,Android Activity,Background,Android Service,我正在android studio中开发一个应用程序,我必须保存设备的位置,我做了一个扩展服务的“locationService”类,因此位置在我的服务器上被分割,服务将在后台。 我已经阅读了android文档,有两种类型的服务(服务和链接服务),我使用链接服务是因为我需要在活动中显示位置数据 问题是,当我关闭应用程序时,服务将终止,并且不会记录位置的更改 如何防止链接服务死亡。谢谢我想你指的是“绑定的”服务,而不是“链接的”服务。当最后一个客户端与绑定的服务断开连接时,绑定的服务将停止运行。为
服务
,而不是“链接的”服务
。当最后一个客户端与绑定的服务断开连接时,绑定的服务将停止运行。为了防止这种情况,您需要调用startService()
,并确保在服务中从onStartCommand()
返回START\u STICKY
您不需要使用“绑定”的服务
将数据从服务
传递到活动
。另一种方法是让您的服务
广播数据(通过将数据作为“额外”添加到意图
并使用意图
调用发送广播()
)。然后,您的活动
可以设置一个广播接收器
来监听您的服务所广播的任何数据
请注意这一点。非常感谢。正确的术语是bundle,我已经在我的应用程序中实现了它,它工作正常,现在我想实现另一个功能,在后台我可以启动活动并显示所需的信息,但当我最小化应用程序时(按home键,我不关闭它),我向您发送了新信息,我想把我的应用程序放在前台,显示这些信息。我想您的意思是“绑定”,而不是“捆绑”。当你想把你的应用程序带到前台时,只需为你的应用程序获取一个“启动意图”,然后调用startActivity()
。它将把你的应用程序带到前台,这样你就可以随心所欲了。再见,谢谢。我已经实现了这个方法,它已经起作用了,现在我遇到了另一个问题,在我的服务中,我有一个布尔变量,它的值是true,从我的应用程序中,我命令它更改为false,但是当我关闭应用程序时,服务发生了一些事情,作为重新启动,我的变量返回到初始值(true)。有一种方式我的服务不会“重新启动”。Android总是可以终止托管你的服务的进程,然后重新启动它。你不能回避这个问题。你需要想出另一种方法来处理这个问题。您可以将某些内容存储在SharedReferences
中,必要时也可以存储在其他持久性存储中。谢谢。我已经能够解决应用程序开发过程中出现的所有问题。