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

判断app是否后台运行,判断activity是否已经打开,是否点中home键

2017-01-17 14:07 411 查看
/**

* 判断当前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);
}
}
}

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