欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发之开门狗在程序锁中的应用实例

程序员文章站 2024-02-21 13:20:52
本文实例讲述了android开发之开门狗在程序锁中的应用方法。分享给大家供大家参考,具体如下: protected static final string tag...

本文实例讲述了android开发之开门狗在程序锁中的应用方法。分享给大家供大家参考,具体如下:

protected static final string tag = "watchdogservice";
private applockdao dao;
private list<string> lockapps;
private activitymanager am;
private intent lockappintent;
@override
public ibinder onbind(intent intent) {
    return null;
}
/**
* 服务第一次被调用的时候调用 的方法
*/
@override
public void oncreate() {
    super.oncreate();
    dao = new applockdao(this);
    //得到所用的要锁定的应用程序
    lockapps = dao.getallpackname();
    am = (activitymanager) getsystemservice(activity_service);
    lockappintent = new intent(this,lockscreenactivity.class);
    lockappintent.setflags(intent.flag_activity_new_task);
    new thread(){
      public void run() {
        while(true){
          try {
            //得到当前正在运行应用程序的报名
            //返回系统里的任务栈的信息,taskinfos只有一个元素,对应当前正在运行的应用程序
            list<runningtaskinfo> taskinfos = am.getrunningtasks(1);
            runningtaskinfo currenttask = taskinfos.get(0);
            //获取当前用户可见的activity所在的程序的包名
            string packname = currenttask.topactivity.getpackagename();
            log.i(tag, "当前运行的程序包名:"+packname);
            if(lockapps.contains(packname)){//锁定
              lockappintent.putextra("packname", packname);
              startactivity(lockappintent);
            }else{//放行
            }
            sleep(200);
          } catch (exception e) {
            e.printstacktrace();
          }
        }
      };
    }.start();
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android通信方式总结》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。