美文网首页Android WorldAndroid开发经验谈程序员
检测某Activity是否在当前Task的栈顶_Android基

检测某Activity是否在当前Task的栈顶_Android基

作者: Promise_Sun | 来源:发表于2018-02-05 09:30 被阅读146次

文 | 莫若吻


1.检测某Activity是否在当前Task的栈顶

或者说检测APP的某Activity是否已经启动,并在最app的最前面显示。
不废话了,直接代码吧。

/**
    * 检测某Activity是否在当前Task的栈顶
    * appointClassName:指定类名称
    */
   public boolean isTopActivity(String appointClassName,Context context){
     ActivityManager manager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
       List<ActivityManager.RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1);
       String topClassName=null;
       if(null != runningTaskInfos){
           topClassName=(runningTaskInfos.get(0).topActivity.getShortClassName()).toString();
       }
       if(StringUtils.isEmpty(topClassName)){
           return false;
       }
       LogUtils.e(topClassName+"类存在于栈顶;指定类:"+appointClassName+"   返回Boolean值:"+topClassName.contains(appointClassName));
       return topClassName.contains(appointClassName);
   }

Note:
1)上述代码有一点不足之处就是,你的项目中不能有相似重复命名的类。
eg:有类AAABBBCCC,不能出现AAABBB、BBBCCC、AAA、BBB、CCC这样的。虽然有弊端,但总算实用。如果谁有更好的实现方式请告知我哈!谢谢


版权声明:本文为博主原创文章,转载请注明出处,谢谢!

相关文章

网友评论

    本文标题:检测某Activity是否在当前Task的栈顶_Android基

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