当前位置: 代码迷 >> Android >> Android 是不是前台运行
  详细解决方案

Android 是不是前台运行

热度:46   发布时间:2016-05-01 11:45:35.0
Android 是否前台运行

Android App开发中,有时需要判断应用是否处于当前活动状态,下面提到两个方法,都是从ActivityManager获得相关信息。

?

方法之一:

	public boolean isAppOnForeground(String packageName) {		ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);		if (activityManager == null) {			return false;		}		List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();		if (appProcesses == null) {			return false;		}		for (RunningAppProcessInfo appProcess : appProcesses) {			if (appProcess.processName.equals(packageName)					&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {				return true;			}		}		return false;	}

?方法之二:

	public boolean isAppOnForeground(String packageName) {		ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);		if (activityManager == null) {			return false;		}		ComponentName componentName = activityManager.getRunningTasks(1).get(0).topActivity;		if (componentName.getPackageName().equals(packageName)) {			return true;		}		return false;	}

最后一定要添加权限 :

<uses-permission android:name="android.permission.GET_TASKS"/>

?

比较:

  • 两个方法都可以完成指定要求,但是方法二需要添加权限,而方法一不需要。

?

?

  相关解决方案