监听用户打开的应用程序
发布时间:2022-12-07 13:37:51 330 相关标签:
#监听用户打开的应用程序# (重点)
时时刻刻监听某些操作的行为,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 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();
文章来源: https://blog.51cto.com/u_15898516/5901624
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报