当前位置: 移动技术网 > IT编程>移动开发>Android > Android通过反射实现强制停止应用程序的方法

Android通过反射实现强制停止应用程序的方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

南庄四中ed2k,宁波电影院,华山简介

本文实例讲述了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程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网