您的位置:首页 > 移动开发 > Android开发

android杀进程方法

2015-07-04 17:55 555 查看
方法1

restartPackage

使用的具体源代码

[java] view
plaincopy

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

am.restartPackage(getPackageName());

再加上uses-permission

[html] view
plaincopy

<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>

方法2

结束进程还有android.os.Process.killProcess(pid)只能终止本程序的进程,无法终止其它的


这是结束当前activity的方法

方法3

在android2.2版本之后则不能再使用restartPackage()方法,而应该使用killBackgroundProcesses()方法

使用代码:

[java] view
plaincopy

ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);

manager.killBackgroundProcesses(getPackageName());

加入权限

[html] view
plaincopy

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

另外,在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己。

方法4

还有一种方法,利用反射调用forceStopPackage来结束进程

代码如下

[java] view
plaincopy

Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);

forceStopPackage.setAccessible(true);

forceStopPackage.invoke(am, yourpkgname);

需要在manifest里加上shareduid定义

[html] view
plaincopy

android:sharedUserId="android.uid.system"

另外加上权限

[html] view
plaincopy

<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>

并且采用系统platform签名

因为需要用FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序

即可实现强制停止指定程序,系统设置的强行停止应用程序也是调用的这个方法。



方法5

还有一种方法 利用linux的kill -9 + pid

我试验过,效果不大好,以QQ安全管家为例,被杀掉就直接重新启动了(360也是这种情况)







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: