Android2.2 结束进程forceStopPackage()
2012-12-27 14:03
344 查看
做一个项目需要用应用程序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"/>
但是经我试验证明,该方法只能重启应用程序,即真正的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"/>
相关文章推荐
- Android 7.0: Force stop application 3 times during package OTA.
- Android 2.2 结束进程的方法
- android-2.2以下杀进程方法:restartPackage();
- Android 结束进程的方法forceStopPackage
- android实现结束进程。
- Android 结束进程的几种方法
- Android 结束进程的方法
- android· 2.2上的任务管理器杀死进程的API
- Android 结束进程的方法
- Android结束进程的方法
- 【2014-06-16】AntiSpy 2.2 (新增进程树模式,结束进程树等功能)
- android结束进程方法总结
- forceStopPackage应用中关闭其他应用程序
- Android结束进程方法
- Android 通过反射调用隐蔽方法forceStopPackage结束应用
- Android后台强制结束进程,Application入口或者activity回调的是哪个方法?
- Android释放内存(结束进程)
- android结束进程、退出application的方法
- Android 结束进程的方法
- android am force-stop not work