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

判断App是否在前台运行

2015-01-05 17:52 141 查看
// Android开发中,有时候需要判断App是否在前台运行。 代码实现如下:

[java] view
plaincopy





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 (currentPackageName != null && currentPackageName.equals(getPackageName())) {  

        return true;  

    }  

    return false;  

}  

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

[java] view
plaincopy





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权限

转自:http://blog.csdn.net/catoop/article/details/41727273
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: