1.am.killBackgroundProcesses(String packageName);
这个方法只能停止在后台的应用,如果应用在前台就不能用。
2.andorid.os.Process.killProcess(int pid);
这个方法对于前台应用同样没用,因为的我需求时杀死前台的app所以没有测试后台是否能够杀死,但是这个用来大范围的杀死后台进程是比较好用的,代码可以参考:

 ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        List.RunningAppProcessInfo> infos = am.getRunningAppProcesses();        for (ActivityManager.RunningAppProcessInfo info:infos) {            if (info.processName.equals(MainActivity.packageName)){                android.os.Process.killProcess(info.pid);            }

3命令行的方法,这个方法需要root,Runtime.getRuntime().exec(cmd);
这个方式运行了命令行,所以是能够杀死前台应用的,但是exec方法是异步方法,我想要获取它执行完的时间,因为后续还有操作所以最后是这样

 try {            Process process = Runtime.getRuntime().exec("su");            OutputStream out =  process.getOutputStream();            String cmd = "am force-stop " + pn + " \n";            out.write(cmd.getBytes());            out.flush();            out.close();            InputStream fis=process.getInputStream();            //用一个读输出流类去读            InputStreamReader isr=new InputStreamReader(fis);            //用缓冲器读行            BufferedReader br=new BufferedReader(isr);            String line=null;            //直到读完为止 目的就是要阻塞当前的线程到命令结束的时间            while((line=br.readLine())!=null)            {                MyLog.e(line);            }            process =null;        } catch (IOException e) {            e.printStackTrace();        }

如果只是要结束后台进程,根据需求用1,2,如果要结束前台进程用3,完结撒花

更多相关文章

  1. 在Android(安卓)Jar包使用图片资源的解决方法
  2. 64位系统中安装Android(安卓)SDK“系统找不到指定的文件Java.exe
  3. Android第一行代码第二版:5.3.2发送有序广播,在安卓8上无法接收广
  4. android 从顶层到底层 学习笔记--- framework架构
  5. Android遇到的问题,解决方法和一些小技巧
  6. android基础回顾---activity生命周期
  7. Android基础篇_Part1_Android基础知识
  8. Android(安卓)绘制线程动画
  9. 如何启用Service,如何停用Service。

随机推荐

  1. php实现文件上传到服务器(含代码)
  2. 十大最主流的PHP框架
  3. 新手应该知道的php多图片上传的实现
  4. php构建一个区块链(含源码)
  5. PHP global 关键词的实例详解
  6. use在php中的使用方法(代码示例)
  7. PHP高级应用的讲解
  8. php的定界符<<<EOF的解析
  9. PHP Composer是什么技术?一起看看
  10. Mac搭建php的开发环境(图文详解)