分享

Android判断App是否在前台运行

 openwudi 2014-10-29

 Android开发中,有时候需要判断App是否在前台运行。

代码实现如下:

  1. private boolean isRunningForeground (Context context)  
  2. {  
  3.     ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);  
  4.     ComponentName cn = am.getRunningTasks(1).get(0).topActivity;  
  5.     String currentPackageName = cn.getPackageName();  
  6.     if(!TextUtils.isEmpty(currentPackageName) && currentPackageName.equals(getPackageName()))  
  7.     {  
  8.         return true ;  
  9.     }  
  10.    
  11.     return false ;  
  12. }  


注意:
AndroidManifest.xml中需增加
< uses-permission android:name =“android.permission.GET_TASKS” />




  1. protected static boolean isTopActivity(Activity activity){
            String packageName = "xxxxx";
            ActivityManager activityManager = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
            List<RunningTaskInfo>  tasksInfo = activityManager.getRunningTasks(1);  
            if(tasksInfo.size() > 0){  
                System.out.println("---------------包名-----------"+tasksInfo.get(0).topActivity.getPackageName());
                //应用程序位于堆栈的顶层  
                if(packageName.equals(tasksInfo.get(0).topActivity.getPackageName())){  
                    return true;  
                }  
            }  
            return false;
        }
  2. 需要添加android.permission.GET_TASKS权限

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多