在其他应用中杀死一个应用的服务

时间:2012-02-17 08:48:01

标签: android service

我有两个不同的应用程序,这个假设有两个应用程序是A和B.在A app上有很多服务,我的任务是要使用B的方法杀死A的服务,但A和B不是apk,是不同的应用程序。

i used :
ActivityManager manager =  (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> activityes = ((ActivityManager) manager).getRunningAppProcesses();

    for (int i = 0; i < activityes.size(); i++){

        Log.e("APP: "+i, activityes.get(0).processName);

        if (!activityes.get(i).processName.contains("com.qihoo360")){
            //android.os.Process.killProcess(activityes.get(1).pid);
            Log.i("dfd","xx");
            manager.killBackgroundProcesses("com.qihoo360.mobilesafe"); 
            android.os.Process.sendSignal(activityes.get(1).pid, android.os.Process.SIGNAL_KILL);
        }

    }

但没有用。但在移动设置管理器应用程序中,它有一个关闭按钮来关闭它。如果我没有权限杀死另一个应用程序,因为系统安全。

3 个答案:

答案 0 :(得分:1)

你甚至不应该试图以这种方式杀死服务。

停止使用服务中的广播接收器,并从想要停止广播的应用发送广播。

这使接收方可以决定它是否已完成并正常释放资源。

你应该有一个非常好的理由甚至试图强行杀死进程。

答案 1 :(得分:1)

你应该看一下intent-filters。确保您的应用程序有权访问该服务和您的其他应用程序。希望这个链接可以帮助你:http://justanapplication.wordpress.com/2011/02/16/the-android-intent-based-apis-part-five-services-and-intents/

答案 2 :(得分:0)

在尝试此操作之前,您应该参考服务被杀死的源代码。这将帮助您弄清楚您需要什么。

不要尝试编写没有某些结构的编码,以及如何实现它。