停止或终止服务

时间:2012-02-22 05:11:47

标签: android service kill

我正在开发一个任务管理器应用程序..

在该应用中,我向用户显示每个应用旁边正在运行的应用列表和终止按钮。 当用户按下kill按钮时,相应的活动将被终止并且我使用

      activitymanager.killbackgroundprocesses(packageName)

我创建了另一个名为服务通知的应用程序,用户可以通过单击按钮“启动服务”和按钮“停止服务”来启动和停止服务。然后在运行我的任务管理器应用程序之前,我从服务通知启动服务应用程序。 因此,此活动显示在我的任务管理器应用程序中。

但是,当我杀死该活动时,它会从列表中消失,然后再次出现,因为服务正在重新启动。那么我如何杀死服务呢?

我使用startService和onCreate来启动服务并显示一些通知,使用stopService和onDestroy来停止服务......

2 个答案:

答案 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

并且: Start a service on onClick