本文实例讲述了Android开发之开门狗在程序锁中的应用方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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程序设计有所帮助。