简单的Android应用是否正在使用的方式

两种方法,
当切换页面的时候 onPause()、 onStop() 中返回都是在前台,
当退出应用时 onStop()、onDestroy() 返回都是在后台,
可以放在 onStop() 中判断离开当前页面时是因为切换了Activity还是退出程序(只是存在这样的判断方式,当然不是绝对准确的,还存在很多其他的影响条件,使Activity的生命周不会老老实实的P->S->D的退出应用。)

后台运行的属性

ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND

前台运行的属性

ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND

具体使用方式:

    /**
     * 判断程序是否在后台运行
     * @param context 上下文对象
     * @return true  表示在后台运行
     *         false 表示在前台
     */
    public static boolean isRunBackground(Context context) {
        ActivityManager activityManager = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);
        List appProcesses = activityManager
                .getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
            if (appProcess.processName.equals(context.getPackageName())) {
                if (appProcess.importance == ActivityManager.RunningAppProcessInfo
                          .IMPORTANCE_BACKGROUND) {
                    return true;
                } else {
                    return false;
                }
            }
        }
        return false;
    }


    /**
     * 判断程序是否在前台运行(当前运行的程序)
     * @return true 代表在前台
     *         false 代表后台
     */
    public boolean isRunForeground() {
        ActivityManager activityManager = (ActivityManager) getApplicationContext()
                .getSystemService(Context.ACTIVITY_SERVICE);
        String packageName = getApplicationContext().getPackageName();
        List appProcesses = activityManager
                .getRunningAppProcesses();
        if (appProcesses == null){
            return false;
        }
        for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
            if (appProcess.processName.equals(packageName)
                    && appProcess.importance == ActivityManager.RunningAppProcessInfo
                    .IMPORTANCE_FOREGROUND) {
                return true;
            }
        }
        return false;
    }

你可能感兴趣的:(简单的Android应用是否正在使用的方式)