如何判断App切到后台

Q:如何判断App被切到了后台(比如按Home键)。
A:可以通过任务栈中顶部Activity的包名来判断,和App包名相同则表示App处于前台进程,否则处于后台进程。

    /**
     * 判断app是否处于前台
     */
    public boolean isRunningForeground() {
        ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
        if (activityManager != null
                && activityManager.getRunningTasks(1) != null
                && activityManager.getRunningTasks(1).size() > 0
                && activityManager.getRunningTasks(1).get(0) != null
                && activityManager.getRunningTasks(1).get(0).topActivity != null
                && TextUtils.equals(activityManager.getRunningTasks(1).get(0).topActivity.getPackageName(), getPackageName())) {
            //顶部的activity包名和app包名相同,则app正处在前台
            return true;
        } else {
            return false;
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容