Android:如何停止属于另一个应用程序的服务?

Android:如何停止属于另一个应用程序的服务?,android,android-service,Android,Android Service,我有一些应用程序使用一个共享库,当用户打开其中一个应用程序时,它会启动一项服务。理想情况下,无论这些应用程序中有多少个处于打开状态,都只能运行此服务的一个实例 例如,用户打开启动服务的应用程序“A”。然后用户打开应用程序“B”,它检测到服务正在运行,停止服务,然后重新启动服务本身 这是可以在Android中通过在自己的进程中运行服务或通过其他方法实现的吗?如果: 服务被导出,并且 权限允许您与该服务对话,以及 您知道如何制定意图来识别服务 然后应该可以工作,假设服务可以停止(例如,没有绑定到

我有一些应用程序使用一个共享库,当用户打开其中一个应用程序时,它会启动一项服务。理想情况下,无论这些应用程序中有多少个处于打开状态,都只能运行此服务的一个实例

例如,用户打开启动服务的应用程序“A”。然后用户打开应用程序“B”,它检测到服务正在运行,停止服务,然后重新启动服务本身

这是可以在Android中通过在自己的进程中运行服务或通过其他方法实现的吗?

如果:

  • 服务被导出,并且
  • 权限允许您与该服务对话,以及
  • 您知道如何制定
    意图
    来识别服务
然后应该可以工作,假设服务可以停止(例如,没有绑定到它的连接)<代码>停止服务()不限于您自己流程中的服务

这里的关键是安全性,确保您可以以某种方式停止服务,而其他人不能。这不是特别容易,这就是为什么你不认为这是一个共同的模式


在您的情况下,也许更好的解决方案不是停止现有服务并启动一个新的服务,而是在您的服务实例已经运行的情况下,不去管它。

“这是什么?”“这”是指停止由其他应用程序启动的服务。实际上,我太专注于“如何”了不关注“为什么”。在您的情况下,也许更好的解决方案不是停止现有服务并启动一个新的服务,而是在您的服务实例已经在运行的情况下,不去管它。这将适用于我的用例。