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

Android判断App是否在前台运行

2014-11-07 11:53 495 查看
Android开发中,有时候需要判断App是否在前台运行。

代码实现如下:

方法1

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 ;
}

方法2

private boolean isAppOnForeground(Context context) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasksInfo = manager.getRunningTasks(1);
if (tasksInfo.size() > 0) {
// 应用程序位于堆栈的顶层
String src = context.getPackageName();
String des = tasksInfo.get(0).topActivity.getPackageName();
if (src.equalsIgnoreCase(des)) {
return true;
}
}
return false;
}

注意:

AndroidManifest.xml中需增加

< uses-permission android:name =“android.permission.GET_TASKS” />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: