Android通过反射实现强制停止应用程序的方法
程序员文章站
2024-02-20 23:29:40
本文实例讲述了android通过反射实现强制停止应用程序的方法。分享给大家供大家参考,具体如下:
private activitymanager manager;...
本文实例讲述了android通过反射实现强制停止应用程序的方法。分享给大家供大家参考,具体如下:
private activitymanager manager; private list<runningappprocessinfo> runningprocesses; private string packname; private packagemanager pmanager; @override public void onreceive(context context, intent intent) { pmanager = context.getpackagemanager(); manager = (activitymanager) context.getsystemservice(context.activity_service); killothers(context); } /** * 杀死其他正在运行的程序 * * @param context */ private void killothers(context context) { runningprocesses = manager.getrunningappprocesses(); for (runningappprocessinfo runningprocess : runningprocesses) { try { packname = runningprocess.processname; applicationinfo applicationinfo = pmanager.getpackageinfo(packname, 0).applicationinfo; if (!"com.asms".equals(packname)&&filterapp(applicationinfo)) { forcestoppackage(packname,context); system.out.println(packname+"jjjjjj"); } }catch(exception e){ e.printstacktrace(); } } } /** *强制停止应用程序 * @param pkgname */ private void forcestoppackage(string pkgname,context context) throws exception{ activitymanager am = (activitymanager)context.getsystemservice(context.activity_service); method method = class.forname("android.app.activitymanager").getmethod("forcestoppackage", string.class); method.invoke(am, pkgname); } /** * 判断某个应用程序是 不是三方的应用程序 * @param info * @return */ public boolean filterapp(applicationinfo info) { if ((info.flags & applicationinfo.flag_updated_system_app) != 0) { return true; } else if ((info.flags & applicationinfo.flag_system) == 0) { return true; } return false; }
说明:如果是在activity中将onreceiver方法换成oncreate方法即可。
2.需要在androidmanifest.xml 把package的userid设置为system
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.asms" android:versioncode="1" android:versionname="1.0" android:shareduserid="android.uid.system">
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android service组件使用技巧总结》、《android基本组件用法总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
上一篇: MySQL创始人创建 开源数据库联盟