【发布时间】:2011-04-08 15:27:54
【问题描述】:
我目前有一个未绑定的服务正在运行,它不断地抓取我在启动时启动的 gps 位置。然后我有一个应用程序,它可以通过从服务中提取数据来绘制我去过的地方。
我无法绑定服务来与之对话,否则一旦我关闭应用程序就会被销毁。
有没有什么好的方法可以从未绑定的服务中获取数据,或者在我取消绑定后防止绑定的服务死亡?
干杯! :)
【问题讨论】:
我目前有一个未绑定的服务正在运行,它不断地抓取我在启动时启动的 gps 位置。然后我有一个应用程序,它可以通过从服务中提取数据来绘制我去过的地方。
我无法绑定服务来与之对话,否则一旦我关闭应用程序就会被销毁。
有没有什么好的方法可以从未绑定的服务中获取数据,或者在我取消绑定后防止绑定的服务死亡?
干杯! :)
【问题讨论】:
有一种解决方法可以让您的服务保持活力。通过调用 startService 调用您的服务,然后绑定到该服务。这样,您的活动就可以维护服务的生命周期。
【讨论】:
正如documentation 所说:
服务既可以启动也可以拥有 绑定到它的连接。在这样一个 情况下,系统会保留服务 运行只要它是 开始或有一个或多个 连接
首先,使用startService() 启动服务,然后在 onResume() 中绑定到它,并在 onPause() 中取消绑定。该服务将继续运行,因为它已启动。当您想停止服务时,可以从服务中调用stopSelf(),或者从活动中调用stopService()。如果有任何连接,它将立即停止,或者在您解除绑定后立即停止。
【讨论】: