* 判断当前activity是否已经打开
* @param PackageName
* @param context
* @return
*/
public boolean isForeground(String PackageName,Context context){
// Get the Activity Manager
ActivityManager manager = (ActivityManager)context.getSystemService(context.ACTIVITY_SERVICE);
// Get a list of running tasks, we are only interested in the last one,
// the top most so we give a 1 as parameter so we only get the topmost.
List< ActivityManager.RunningTaskInfo > task = manager.getRunningTasks(1);
// Get the info we need for comparison.
ComponentName componentInfo = task.get(0).baseActivity;
Log.e("<<<<<<<<<<","---------------"+componentInfo.getClassName());
// Check if it matches our package name.
if(componentInfo.getClassName().equals(PackageName))
return true;
// If not then our app is not on the foreground.
return false;
}
/**
* 判断整个app项目是否在用户操作界面
*
*/
public void appIsRunning(){
ActivityManager am = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = am.getRunningAppProcesses();
String MY_PKG_NAME =getContext().getPackageName();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(MY_PKG_NAME)) {
if (appProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
Log.e("hhhh-->", "处于后台"
+ appProcess.processName);
} else {
Log.e("hhhh-->", "处于前台"
+ appProcess.processName);
}
}
}
}