我有一些应用程序使用共享库,当用户打开其中一个应用程序时启动服务。理想情况下,无论这些应用程序中有多少是打开的,都只会运行此服务的一个实例。
例如,用户打开启动服务的应用程序“A”。然后用户打开应用程序“B”,它检测到服务正在运行,停止它,然后重新启动服务本身。
这可以通过在自己的流程中运行服务,还是通过其他方法在Android中完成?
答案 0 :(得分:2)
如果:
Intent
来识别服务然后stopService()
应该有效,假设服务可以停止(例如,没有绑定连接)。 stopService()
不仅限于您自己流程中的服务。
这里的关键是安全性,确保以某种方式你可以停止服务而其他不能。这并不是特别容易,这就是为什么你不认为这是一种常见的模式。
在您的情况下,或许更好的解决方案不是停止现有服务并开始新服务,而只是在服务实例已经运行的情况下单独处理。