天天看点

ActivityManager.getRunningTasks笔记

// getRunningTasks(int),获取int个任务栈列表,但返回的列表size可能会小于int

// getRunningTasks(int).get(0):获取当前正在运行的任务栈对象,通过这个对象可获取栈中activity的数量、正处于运行状态的activity数量等等信息

// getRunningTasks(int).get(0).topActivity:获取当前正在运行的任务栈的顶端activity,通过这个activity可以获取包名、类名等等信息

List<RunningTaskInfo> tasksInfo = activityManager.getRunningTasks(1);

if (tasksInfo.size() > 0) {

// 应用程序位于堆栈的顶层

Log.v("Log", tasksInfo.get(0).topActivity.getClassName());

if (!className.equals(tasksInfo.get(0).topActivity.getClassName())) {

Intent intent = new Intent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

isSetting = drawKey == null || "".equals(drawKey);

intent.putExtra("isSetting", isSetting);

intent.setClass(getApplicationContext(), GestureLockAty.class);

startActivity(intent);

}

}

注意添加权限:

<span style="font-size:14px;"><uses-permission android:name="android.permission.GET_TASKS"/></span>