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

Android判断App是否在前台运行

2013-12-14 17:10 411 查看
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(!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权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: