在我的应用程序中,我创建了一个服务,假设 MyService
,我想做的是,如果我不在应用程序中,我只想运行它。因此,当我打开我的应用程序时,我想检查 MyService
的任何实例是否正在运行/存在。如果发现我想阻止它。当我退出时,我的应用程序将使用 Intent 再次启动该服务。
我发现的大多数搜索结果都建议使用 stopService()
方法。但是只有当我有指向该服务的 Intent 时我才能使用它,对吗?但到目前为止,我发现的关于“搜索”过程的唯一解决方案建议使用 getSystemService(Context.ACTIVITY_SERVICE)
。但是我通过它只得到一个 RunningServiceInfo
对象。我如何使用此对象停止正在运行的服务?
如果这不可能,那么完成我在这里尝试做的事情的最有效方法是什么?
最佳答案
无论服务是否运行,您都可以调用stopService()
,因此您无需检查它是否正在运行。如果是,它将被停止并且 stopService()
返回 true;否则 stopService()
返回 false(但听起来您并不关心返回值)。
参见 documentation for stopService()
.
getSystemService()
对于查找您自己的服务不有用,它用于查找系统级服务,如 ActivityManager 或 AlarmManager。
关于android - 如何获取正在运行的服务并从 Activity 中手动停止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027213/