2012-02-22 173 views
3

我开发一个任务管理器应用程序..停止或中止服务

在该应用程序,我展示给用户正在运行的应用列表,并杀死每个应用程序旁边的按钮。 当用户按下杀按钮相应的活动将被杀死,我用

 activitymanager.killbackgroundprocesses(packageName) 

我创建了一个叫做服务通知另一个应用程序,其中用户可以启动,并通过点击按钮“启动服务”按钮“一站式服务停止服务“分别..然后在运行我的任务管理器应用程序之前,我从服务通知应用程序启动服务。 所以这个活性显示在我的任务管理器应用程序。

但是,当我杀了那个活动,它从列表中消失,然后再次出现,因为服务是restarting..How我杀了服务队呢?

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

+0

〜“运行我的任务管理器应用程序之前,我就开始了来自服务通知应用的服务“。所以你说的是,无论用户是否选择启动它,你都启动所有的服务? – 2014-01-01 21:45:15

回答

8

我终于找到了答案,我的问题...

后使用

activitymanager.killbackgroundprocesses(packageName) , 

我们要检查是否有正在该套件名称或进程名运行的所有服务。

然后,我们必须使用

stopService(new Intent().setComponent(serviceInfos.get(i).service)) 

但它会返回一个错误,因为Android不容许我们停止其他服务

所以我用清单中的这两条线,然后跑到我的应用程序在构建机器

coreApp="true" 
android:sharedUserId="android.uid.system" 

这两条线有没有在Android设置清单文件,允许设置,如果用户想要停止服务。

所以活动得到了与服务一起遇难... :)

记住这个工作只在构建机上....

+0

什么是构建机器,你的意思是你做的手机? – pengwang 2012-04-07 05:59:40

+0

不,它是Linux的机器,其中Android的SDK使用构建命令内置.... – DSP 2012-04-09 04:24:10

+0

我们可以建立自己的SDK,我说的对 – pengwang 2012-04-09 05:26:28