我正在使用以下代码来了解当前在前台的进程:
ActivityManager activityManager = (ActivityManager) newContext.getSystemService( Context.ACTIVITY_SERVICE );
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for(RunningAppProcessInfo appProcess : appProcesses){
if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
Log.i("Foreground App", appProcess.processName);
[...]
}
}
但它只有在我使用 4.0.4 发射器(如 stock one、apex、nova 发射器)时才有效。如果我切换到 GoLauncher 或 Launcher Pro,它们不会被记录。看起来它们永远不会进入前台(或者这部分代码无法检测到它们)。