Android 判断App前后台运行状态
2016-10-10 14:13
369 查看
两种方式:
1、通过上下文环境获取ActivityManager(activity管理器)。
2、从ActivityManager中获取正在运行的进程集合。
3、遍历这个集合获取每个进程的名称和当前应用的包名作比较。
/**
* 判断当前应用是否是在前台运行
* @param context
* @return
*/
public static boolean isAppForground(Context context) {
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Service.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = activityManager
.getRunningAppProcesses();// 获取正在运行的进程
if (runningAppProcesses == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo processInfo : runningAppProcesses) {
if (processInfo.processName.equals(context.getPackageName())
&& processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;
}
}
return false;
}
2.
1、获取Activity的管理器
2、从管理器中获取第一个运行的activity的包名。
/**
* 判断当前应用是否是在前台运行
*
* @param context
* @return
*/
public static boolean isRunningGoreground(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
String currentPackageName = cn.getPackageName();// 获取包名
if (!TextUtils.isEmpty(currentPackageName)
&& currentPackageName.equals(context.getPackageName())) {
return true;
}
return false;
}
1、通过上下文环境获取ActivityManager(activity管理器)。
2、从ActivityManager中获取正在运行的进程集合。
3、遍历这个集合获取每个进程的名称和当前应用的包名作比较。
/**
* 判断当前应用是否是在前台运行
* @param context
* @return
*/
public static boolean isAppForground(Context context) {
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Service.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = activityManager
.getRunningAppProcesses();// 获取正在运行的进程
if (runningAppProcesses == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo processInfo : runningAppProcesses) {
if (processInfo.processName.equals(context.getPackageName())
&& processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;
}
}
return false;
}
2.
1、获取Activity的管理器
2、从管理器中获取第一个运行的activity的包名。
/**
* 判断当前应用是否是在前台运行
*
* @param context
* @return
*/
public static boolean isRunningGoreground(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
String currentPackageName = cn.getPackageName();// 获取包名
if (!TextUtils.isEmpty(currentPackageName)
&& currentPackageName.equals(context.getPackageName())) {
return true;
}
return false;
}
相关文章推荐
- Android判断App前台运行还是后台运行(运行状态)
- Android判断App前台运行还是后台运行(运行状态)
- Android对App前后台运行状态的判断
- Android通过包名或类名启动APP或者一个Activity 以及 判断APP的运行状态
- Android 判断app是否在前台还是在后台运行
- android 如何判断app 运行在后台
- Android判断APP当前状态,处于前台还是后台或者未启动
- Android判断app是否后台运行中,后台运行通知栏提示
- Android 根据包名判断 App 运行状态
- Android 判断App是否在后台运行
- Android开发实现根据包名判断App运行状态的方法
- Android 判断app是否运行在后台
- Android 判断app是否在前台还是在后台运行
- Android 必知必会 - 根据包名判断 App 运行状态
- [前台,后台]android 如何判断app 运行在后台
- Android 判断应用前后台运行状态并获取当前 Activity 实例
- Android 判断app是否在前台还是在后台运行
- (4.1.2.6)Android 判断app是否在前台还是在后台运行
- Android 判断app是否在前台还是在后台运行
- Android 判断app是否在前后台运行