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

代码实现如下:

private boolean isRunningForeground (Context context){    ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);    ComponentName cn = am.getRunningTasks(1).get(0).topActivity;    String currentPackageName = cn.getPackageName();    if(!TextUtils.isEmpty(currentPackageName) && currentPackageName.equals(getPackageName()))    {        return true ;    }     return false ;}


注意: 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  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权限

更多相关文章

  1. Android:如何从堆栈中还原ProGuard混淆后的代码
  2. Android -- android app 能分配的最大内存堆栈问题
  3. 微软和亚马逊在Android方面的最新消息
  4. 使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
  5. android如何在C++中打印调用堆栈
  6. 【摘录】使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用
  7. Google公开指责微软、苹果和甲骨文试图通过专利扼杀Android
  8. android Activity 堆栈和亲属关系

随机推荐

  1. Android(安卓)插件化 动态升级
  2. Android中WebView加载本地Html,与JavaScri
  3. 作为一个刚刚入职Android开发的应届生,该
  4. 深入Android(安卓)【一】 —— 序及开篇
  5. NDK版本与Android固件要求对应表
  6. Android系统发展历程:1.0到4.0及代表机型
  7. 新书内容连载(3):Android(安卓)SDK中常用命
  8. 深入探讨 Android(安卓)传感器
  9. Android(安卓)的Camera架构介绍
  10. 真正的机器人操作系统---Android