0

我正在尝试构建一个简单的 android 应用程序,如果当前没有在前台运行/在屏幕上可见的应用程序(我自己的应用程序除外),它将显示某种弹出窗口。那么如何检测屏幕上当前是否没有正在运行的应用程序呢?

提前致谢...

4

1 回答 1

0

您可以使用以下内容来获取前台的应用程序:

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);
    }
}

然后简单地appProcess.processName与设备上启动器的包名称进行比较,您可以使用它:

private String findLauncherPackageName(){       
    final Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    final ResolveInfo res = getPackageManager().resolveActivity(intent, 0); 
    Log.e("ANDRO_ASYNC", String.format("findLauncherPackageName()%s",res.activityInfo.packageName));
    return res.activityInfo.packageName;
}
于 2013-02-17T11:38:51.557 回答