您的位置:首页 > 移动开发

Android判断App是否在前台运行

2017-06-23 17:45 357 查看
Android开发中,有时候需要判断App是否在前台运行。

代码实现如下:

[java] view
plain copy

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 ;  

}  

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

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;

    }
需要添加android.permission.GET_TASKS权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: