美文网首页Android Utils
Android 判断 Activity 是否在前台

Android 判断 Activity 是否在前台

作者: 几千里也 | 来源:发表于2015-11-06 15:15 被阅读5980次

    先得到 TopTask

    protected ActivityManager mActivityManager;
    
    mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
    
        public ActivityManager.RunningTaskInfo getTopTask() {
            List<ActivityManager.RunningTaskInfo> tasks = mActivityManager.getRunningTasks(1);
            if (tasks != null && !tasks.isEmpty()) {
                return tasks.get(0);
            }
    
            return null;
        }
    

    再判断 Activity 是不是在栈的最上面

        public boolean isTopActivity(
                ActivityManager.RunningTaskInfo topTask,
                String packageName,
                String activityName) {
            if (topTask != null) {
                ComponentName topActivity = topTask.topActivity;
    
                if (topActivity.getPackageName().equals(packageName) &&
                        topActivity.getClassName().equals(activityName)) {
                    return true;
                }
            }
    
            return false;
        }
    

    举个例子

        public void yourMethod() {
            if (isTopActivity(getTopTask(), yourPackageName, yourActivityName)) {
                //
            } else {
                //
            }
        }
    

    相关文章

      网友评论

        本文标题:Android 判断 Activity 是否在前台

        本文链接:https://www.haomeiwen.com/subject/bojchttx.html