Android: 如何停止属于另一个应用程序的服务?
Android: how to stop service belonging to another application?
我有几个使用共享库的应用程序,当用户打开其中一个应用程序时,它会启动一项服务。理想情况下,无论打开了多少应用程序,此服务只有一个实例 运行。
例如,用户打开启动服务的应用程序"A"。然后用户打开应用程序 "B",它检测到服务是 运行,停止它,然后重新启动服务本身。
这是否可以在 Android 中通过 运行 服务在它自己的进程中或通过其他方法来完成?
如果:
- 服务导出,并且
- 允许您与该服务对话的权限,并且
- 您知道如何制作
Intent
来识别服务
然后 stopService()
应该工作,假设服务可以停止(例如,没有绑定的连接到它)。 stopService()
不限于自己进程中的服务
这里的关键是安全,确保你可以以某种方式停止服务而其他人不能。这不是特别容易,这就是为什么您不认为这是一种常见模式。
在您的情况下,如果您的服务实例已经 运行。
,也许更好的解决方案不是停止现有服务并启动新服务,而是让一切保持原样。
我有几个使用共享库的应用程序,当用户打开其中一个应用程序时,它会启动一项服务。理想情况下,无论打开了多少应用程序,此服务只有一个实例 运行。
例如,用户打开启动服务的应用程序"A"。然后用户打开应用程序 "B",它检测到服务是 运行,停止它,然后重新启动服务本身。
这是否可以在 Android 中通过 运行 服务在它自己的进程中或通过其他方法来完成?
如果:
- 服务导出,并且
- 允许您与该服务对话的权限,并且
- 您知道如何制作
Intent
来识别服务
然后 stopService()
应该工作,假设服务可以停止(例如,没有绑定的连接到它)。 stopService()
不限于自己进程中的服务
这里的关键是安全,确保你可以以某种方式停止服务而其他人不能。这不是特别容易,这就是为什么您不认为这是一种常见模式。
在您的情况下,如果您的服务实例已经 运行。
,也许更好的解决方案不是停止现有服务并启动新服务,而是让一切保持原样。