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

Android 判断app是否在前台运行

2015-08-22 09:35 411 查看
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"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: