监听用户打开的应用程序

#监听用户打开的应用程序# (重点)

时时刻刻监听某些操作的行为,watch dog  看门狗
任务栈:管理activity,一个应用就有一个任务栈,打开所有的activity都存放在任务栈

在服务中跳转activity必须给要跳转的activity指明一个任务栈,这样才能跳转

步骤 WatchDogService extends Service
 在服务oncreate方法中执行
	//1.进程的管理者
	final ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
	//2.开启线程时时刻刻监听用户打开的应用程序
	new Thread(){
		public void run() {
			while(isTasks){
				//3.获取正在的运行任务栈
				//maxNum : 获取前几个正在运行的任务栈
				List<RunningTaskInfo> runningTasks = am.getRunningTasks(1);
				for (RunningTaskInfo runningTaskInfo : runningTasks) {
					//4.获取栈底的activity
					ComponentName baseactivity = runningTaskInfo.baseActivity;
					//runningTaskInfo.topActivity;//获取栈顶的activity
					//5.获取应用程序的包名
					String packageName = baseactivity.getPackageName();
					//6.判断获取包名是否是打开的应用程序的包名,是就显示密码输入界面,不是就不管了
					if (packageName.equals("com.android.mms")) {
						Intent intent = new Intent(WatchDogService.this,MainActivity.class);
						//给跳转的activity指明一个任务栈
						intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
						startActivity(intent);
					}
					System.out.println(packageName);
				}
				SystemClock.sleep(500);
			}
		};
	}.start();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值