我们都知道,activity是通过一个栈来管理的,最顶上的acivity是正在显示的,最底层的activity是准备要被系统销毁的,在这个栈中可能会保存着一些“曾经显示”过的activity,那么我现在怎么来判断一个activity是否在这个栈中??希望大牛们来帮帮我,我找了网上的好多资料,都没有这方面的资料

解决方案 »

  1.   

    这是我自己写的一个方法用来判断当前界面是否在launcher
    private boolean isInLauncher() {
            ActivityManager manager = (ActivityManager)   mContext.getSystemService(Context.ACTIVITY_SERVICE);
            String name = manager.getRunningTasks(1).get(0).topActivity.getClassName();
            if(name.equals("com.android.launcher.Launcher")){
             return true;
            }
         return false;
        }
    get(0)是取当前栈的最上面的activity,你自己修改了代码遍历查找下
      

  2.   

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    ComponentName cn = am.getRunningTasks(1).get(0).topActivity;(注意加入权限)
      cn.getClassName()得到当前activity 
      

  3.   

    getRunningTasks(1)总是出错,什么原因啊