Androidでドアを開けた犬のプログラムロックへの応用

1393 ワード

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();
	}