// 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>