//Android 6.0的读取栈顶Activity的方法
private String getTopActivityInfo() {
ComponentName cn = null;
String classname = null;
ActivityManager mAm = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
if (mAm.getRunningTasks(1) != null && mAm.getRunningTasks(1).get(0) != null) {
cn = mAm.getRunningTasks(1).get(0).topActivity;
}
if (cn != null) {
classname = cn.getClassName();
Log.d(TAG, "isAppTopActivity->Class Name:"
+ classname);
return classname;
} else {
return "";
}
}
//Android 7.0后的读取栈顶Activity的方法
private String getTopActivityInfo() {
ActivityManager manager = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
String topActivityName;
List<ActivityManager.RunningAppProcessInfo> pis = manager.getRunningAppProcesses();
ActivityManager.RunningAppProcessInfo topAppProcess = pis.get(0);
if (topAppProcess != null && topAppProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
topActivityName = topAppProcess.processName;
}else{
topActivityName ="";
}
Log.v(TAG,"topActivityName is "+topActivityName);
return topActivityName;
}
如果在7.0使用6.0的判断方式,当从一个应用切换到另一个应用,有几率判断错误,判断为显示为桌面(launcher)