2.2之后已经试过killbackgroundprocess 和反射调用forceStopPackage来结束进程的方法了,都是不行,像天天动听、人人这些后台运行的程序,杀完后总是自动重启。任务管理器和安卓优化大师是如何实现将后台运行的程序彻底杀死的呢。

解决方案 »

  1.   

    先试试手动看下你要杀死进程的ppid
    #adb shell
    # ps
    USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
    root      1     0     268    180   c009b74c 0000875c S /init
    root      2     0     0      0     c004e72c 00000000 S kthreadd
    root      3     2     0      0     c003fdc8 00000000 S ksoftirqd/0
    在用 killbackgroundprocess 杀死这个ppid试试 如果父进程是系统服务那就郁闷了
      

  2.   

    我是这么写的,可是就是不行,我试试你的方法再。
    for (RunningServiceInfo service: badServices){
    Process.killProcess(service.pid);
    }

    for (RunningAppProcessInfo process: badProcesses){
         activityManager.killBackgroundProcesses(process.processName);
    Process.killProcess(process.pid);
      

  3.   

    可以改写Framework层的部分代码
    在ActivityManager中添加个killProcess的方法,可以根据进程ID号,或者是packageName包名
    然去去ActivityManagerNativer类中,添加具体实现该方法接口本来ActivityManager中就提供了杀进程的方法,restartPackage()和forceStopPackage()进程Process类本身也提供了自杀的方法killProcess(int pid)
      

  4.   

    我一开始用了killProcess(int pid)和killbackgroudprocess()的方法,但是像天天动听这种软件一直重启呀。
      

  5.   

    深圳地区高薪诚聘andriod游戏开发,有意Q:9364952