【问题标题】:Android kill background application from our application programmaticallyAndroid以编程方式从我们的应用程序中杀死后台应用程序
【发布时间】:2015-03-09 08:49:23
【问题描述】:

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

详情: 我的要求是如何从当前以编程方式开发的应用程序中杀死所有后台运行的应用程序。

我参考了this post,但我无法理解如何实现这一点。其实我想开发类似ShutApp的东西。在此,应用程序强制关闭应用程序其他后台运行的应用程序。

我一直致力于开发此功能。任何提示/建议都会有所帮助。

提前致谢。

编辑

<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"/>

【问题讨论】:

  • “从我们的应用程序运行应用程序”?什么?
  • 这意味着我现在正在开发的应用程序我只想杀死其他正在运行的应用程序。

标签: android kill-process


【解决方案1】:

这将强制停止所有应用程序,包括系统应用程序

    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();
     }

【讨论】:

    【解决方案2】:

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

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

    在此处提问之前,请先在 Google 上搜索您的问题。

    【讨论】:

    • 我知道这是不好的做法,但我也有同样的要求。而且所有的节电应用程序都遵循相同的程序。我只是想知道我们如何开发它。
    • 查看我的编辑,请在此处提问之前使用 google 查找答案。
    • 感谢您的快速回复,但我已经尝试过了,但它不起作用。在建议答案之前请确定:)
    • 您是否将权限添加到 Manifest?
    • 是的,我添加了所有必需的权限。
    【解决方案3】:

    我们实际上不能杀死所有后台应用程序。但是,我们可以通过调用finishAndRemoveTask() 来从最近的应用程序中删除我们自己的应用程序,这可以从棒棒糖中获得。

    另一个解决方案是我们可以在清单文件的活动中使用android:excludeFromRecents

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 2018-08-17
      相关资源
      最近更新 更多