有人知道 怎么判断 界面是否处于桌面(或者说处于应用程序外的界面)?

解决方案 »

  1.   

    1,这个问题,可以通过得到当前的task info来得到。
    try
            {
                ActivityManager activityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
                List<RunningTaskInfo> taskInfos = activityManager.getRunningTasks(10);
                
                return taskInfos;
            }
            catch (SecurityException e)
            {
                e.printStackTrace();
            }
            
            return null;这样得到一个RunningTaskInfo的list, 从这里面可以得到topActivity,你可以判断这个activity的class name,package name,从而判断你的界面是不是在最上面。
      

  2.   

    try
            {
                ActivityManager activityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
                List<RunningTaskInfo> taskInfos = activityManager.getRunningTasks(10);
                
                return taskInfos;
            }
            catch (SecurityException e)
            {
                e.printStackTrace();
            }
            
            return null;
    得到一个RunningTaskInfo列表,RunningTaskInfo可以得到topActivity,从而可以得到class name和package name,通过这两个数据就可以判断你的activity是不是在最上面。不过,一般的程序是没有这样的权限的,需要用系统签名才行。
      

  3.   

    我是初学的。。不知道这样说对不对...用activity的生命周期去判断。。http://www.2cto.com/kf/201110/108421.html