本文實例講述了Android開發(fā)之開門狗在程序鎖中的應(yīng)用方法。分享給大家供大家參考,具體如下:
protected static final String TAG = "WatchDogService";private AppLockDao dao;private List<String> lockApps;private ActivityManager am;private Intent lockappintent;@Overridepublic IBinder onBind(Intent intent) { return null;}/*** 服務(wù)第一次被調(diào)用的時候調(diào)用 的方法*/@Overridepublic void onCreate() { super.onCreate(); dao = new AppLockDao(this); //得到所用的要鎖定的應(yīng)用程序 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 { //得到當(dāng)前正在運(yùn)行應(yīng)用程序的報名 //返回系統(tǒng)里的任務(wù)棧的信息,taskInfos只有一個元素,對應(yīng)當(dāng)前正在運(yùn)行的應(yīng)用程序 List<RunningTaskInfo> taskInfos = am.getRunningTasks(1); RunningTaskInfo currentTask = taskInfos.get(0); //獲取當(dāng)前用戶可見的Activity所在的程序的包名 String packName = currentTask.topActivity.getPackageName(); Log.i(TAG, "當(dāng)前運(yùn)行的程序包名:"+packName); if(lockApps.contains(packName)){//鎖定 lockappintent.putExtra("packname", packName); startActivity(lockappintent); }else{//放行 } sleep(200); } catch (Exception e) { e.printStackTrace(); } } }; }.start();}更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android通信方式總結(jié)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選