Android以编程方式从我们的应用程序中杀死后台应

时间:2015-03-09 08:49:24

标签: android kill-process

我的要求迫使我从我开发的应用程序中杀死其他应用程序。

详细说明: 我的要求是如何以编程方式从当前正在开发的应用程序中删除所有后台运行的应用程序。

我引用this post但我无法理解如何实现这一点。实际上我想开发像ShutApp这样的东西。在此,应用程序强制关闭app其他后台运行的应用程序。

我坚持开发此功能。任何提示/建议都会有所帮助。

提前致谢。

修改

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.GET_TASKS"/>

3 个答案:

答案 0 :(得分:2)

这将强制停止所有应用程序,包括system-app

    try
     {
        Process suProcess = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());

        os.writeBytes("adb shell" + "\n");
        os.flush();

        Context newContext=this;
        ActivityManager activityManager = (ActivityManager) newContext.getSystemService( Context.ACTIVITY_SERVICE );
        List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
        for(RunningAppProcessInfo appProcess : appProcesses){
            if(appProcess.processName.equals("com.yourPackageName")){
             }
             else{
                os.writeBytes("am force-stop "+appProcess.processName + "\n");
             }
          }

        os.flush();
        os.close();
        suProcess.waitFor();

     }

     catch (IOException ex)
     {
         ex.getMessage();
         Toast.makeText(getApplicationContext(), ex.getMessage(),Toast.LENGTH_LONG).show();
     }
     catch (SecurityException ex)
     {
         Toast.makeText(getApplicationContext(), "Can't get root access2",
                   Toast.LENGTH_LONG).show();
     }
     catch (Exception ex)
     {
         Toast.makeText(getApplicationContext(), "Can't get root access3",
                   Toast.LENGTH_LONG).show();
     }

答案 1 :(得分:1)

我很确定这是不可能的,Android允许应用关闭其他应用是不好的做法。

答案在这篇文章中:Kill another process/application programmatically

请在此处提问之前先查询您的问题。

答案 2 :(得分:0)

我们实际上无法杀死所有后台应用。但是,我们可以通过调用lollipop提供的finishAndRemoveTask()来终止我们自己的应用程序。

另一个解决方案是我们可以在清单文件

中的活动中使用android:excludeFromRecents