本文通过图文并茂的方式给大家介绍android判断app状态的相关内容,具体详情如下所示:
要了解这块,首先需要明白一些概念,app,process,task
1.process就是进程,是linux的概念。
2.一般一个app拥有一个uid,运行在一个进程里,如果app中给service等定义不同的uid,那Service就运行在另外一个进程里,也就是说uid就相当于进程的id一样,一个uid就代表一个进程;也可以几个app定义一个uid,那他们就运行在一个进程里了。
3.task是android系统的一个activity的栈,包含多个app的activity,通过ActivityManager可以获取栈中的activity信息,从而判断activity对应应用的状态。
3.1可以做的事情包括:
ActivityManagermActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
PackageManagermPackageManager = context.getPackageManager();
①getRecentTasks() 获取最近打开的task,手机查看最近打开的应用可以用这个实现。
②getRunningAppProcess() 获取app运行中的process。
List list = mActivityManager.getRunningAppProcesses();
StringBuilder apps = new StringBuilder();
for (Ru