我正在开发一个任务管理器应用程序..
在该应用中,我向用户显示每个应用旁边正在运行的应用列表和终止按钮。 当用户按下kill按钮时,相应的活动将被终止并且我使用
activitymanager.killbackgroundprocesses(packageName)
我创建了另一个名为服务通知的应用程序,用户可以通过单击按钮“启动服务”和按钮“停止服务”来启动和停止服务。然后在运行我的任务管理器应用程序之前,我从服务通知启动服务应用程序。 因此,此活动显示在我的任务管理器应用程序中。
但是,当我杀死该活动时,它会从列表中消失,然后再次出现,因为服务正在重新启动。那么我如何杀死服务呢?
我使用startService和onCreate来启动服务并显示一些通知,使用stopService和onDestroy来停止服务......
答案 0 :(得分:8)
我终于找到了我的问题的答案......
使用后
activitymanager.killbackgroundprocesses(packageName) ,
我们必须检查是否有任何服务在该包名或进程名下运行。
然后我们必须使用
stopService(new Intent().setComponent(serviceInfos.get(i).service))
但它会返回错误,因为android不允许我们停止其他服务
所以我在清单中使用了这两行,然后在构建机器中运行了我的应用程序
coreApp="true"
android:sharedUserId="android.uid.system"
这两行存在于android设置清单文件中,如果用户需要,它允许设置停止服务。
所以活动和服务一起被杀死了...... :)
请记住这只适用于构建机器....
答案 1 :(得分:2)
尝试在Android清单文件中使用此权限。
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
并查看此链接可能有帮助... http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29