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

Android 判断应用处于前后台

2016-01-21 14:05 525 查看
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;

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