您的位置:首页 > 移动开发

Android 判断app是否运行在后台

2015-08-07 10:31 274 查看
转载自:http://www.jb51.net/article/45084.htm

这篇文章主要介绍了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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: