Android 判断当前应用程序处于前台还是后台

概要:

Android 判断当前应用程序处于前台还是后台的两种方法

| |目录

正文

1.通过RunningTaskInfo类判断(需要额外权限)

/**
 * 判断当前应用程序处于前台还是后台
 */
public static boolean isApplicationBroughtToBackground(final Context context) {
	ActivityManager am = (ActivityManager) context
			.getSystemService(Context.ACTIVITY_SERVICE);
	List<RunningTaskInfo> tasks = am.getRunningTasks(1);
	if (!tasks.isEmpty()) {
		ComponentName topActivity = tasks.get(0).topActivity;
		if (!topActivity.getPackageName().equals(context.getPackageName())) {
			return true;
		}
	}
	return false;
}

AndroidMenitfest.xml

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

2.通过RunningAppProcessInfo类判断(不需要额外权限)

public static boolean isBackground(Context context) {
	ActivityManager activityManager = (ActivityManager) context
			.getSystemService(Context.ACTIVITY_SERVICE);
	List<RunningAppProcessInfo> appProcesses = activityManager
			.getRunningAppProcesses();
	for (RunningAppProcessInfo appProcess : appProcesses) {
		if (appProcess.processName.equals(context.getPackageName())) {
			if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
				Log.i("后台", appProcess.processName);
				return true;
			} else {
				Log.i("前台", appProcess.processName);
				return false;
			}
		}
	}
	return false;
}

来源

来自CSDN博客:android判断当前应用程序处于前台还是后台的两种方法

评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消