我正在尝试构建一个简单的 android 应用程序,如果当前没有在前台运行/在屏幕上可见的应用程序(我自己的应用程序除外),它将显示某种弹出窗口。那么如何检测屏幕上当前是否没有正在运行的应用程序呢?
提前致谢...
我正在尝试构建一个简单的 android 应用程序,如果当前没有在前台运行/在屏幕上可见的应用程序(我自己的应用程序除外),它将显示某种弹出窗口。那么如何检测屏幕上当前是否没有正在运行的应用程序呢?
提前致谢...
您可以使用以下内容来获取前台的应用程序:
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;
}