android杀进程方法

参考了一篇文章,再此感谢Zengyangtech

http://blog.csdn.net/Zengyangtech/article/details/5733631


方法1 

restartPackage

使用的具体源代码 

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

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

方法2  

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

这是结束当前activity的方法 


方法3

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

ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);     
manager.killBackgroundProcesses(getPackageName());  

加入权限

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>  
另外,在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己。


方法4

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

代码如下

Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);

需要在 manifest 里加上 shareduid 定义

android:sharedUserId="android.uid.system"  

另外加上权限

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

并且采用系统platform签名

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

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

 

方法5

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

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










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值