您的位置:首页 > 其它

判断程序在前台还是退到后台的方法

2014-12-04 17:20 141 查看
方法一:

public static boolean isOnBackground(Context context)

{

String packageName = context.getPackageName();

ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

List<RunningTaskInfo> tasksInfo = activityManager.getRunningTasks(1);

if (tasksInfo.size() > 0)

{

// 应用程序位于堆栈的顶层

if (packageName.equals(tasksInfo.get(0).topActivity.getPackageName()))

{

return false;

}

}

return true;

}

方法二:

public static boolean isAppOnForeground(Context context)

{

ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

String packageName = context.getPackageName();

// Returns a list of application processes that are running on the device

List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();

if (appProcesses == null)

return false;

for (RunningAppProcessInfo appProcess : appProcesses)

{

// The name of the process that this object is associated with.

if (appProcess.processName.equals(packageName)

&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)

{

return true;

}

}

return false;

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