Android2.2 结束进程forceStopPackage()



做一个项目需要用应用程序A去结束应用程序B。在网上查到资料显示,在Android2.2之前使用ActivityManager.restartPackage()方法可以结束进程。在2.2之后需使用Activity.killBackgroundProcesses()方法。
但是经我试验证明,该方法只能重启应用程序,即真正的restartPackage,而不能达到结束进程的目的。
然后又在网上找到了ActivityManager.forceStopPackage()方法,但是该方法是系统隐藏方法,无法被正常调用的。在网上查到有两个办法可以调用,1.在源码下编译工程;2.使用Java反射调用。
我先采用在源码下编译工程的方法。估计是我的android.mk文件写的有问题。反正没有成功。
因此我改用了反射调用。但是改成反射之后我在模拟器中一直跑步起来,报错。丢在真机上反倒成功了,我觉得是因为我没有在本机上编译android,然后把镜像文件丢到模拟器中造成了。
反正成功了就好。一下是用java反射调用Android系统隐藏方法的方法,资料很据收藏价值喔。



 ActivityManager sd = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
Method method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class);
method.invoke(sd, "com.h3c.ServiceAuto");
   
记得加权限:  <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值