亲宝软件园·资讯

展开

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

lg878398509 人气:0
想了解Android开发之开门狗在程序锁中的应用实例的相关内容吗,lg878398509在本文为您仔细讲解Android 开门狗在程序锁中的应用的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Android,开门狗,程序锁,下面大家一起来学习吧。

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

加载全部内容

相关教程
猜你喜欢
用户评论