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

Android判断程序是前台还是后台

2015-09-09 21:06 441 查看
/**
* 程序是否在前台运行
*
* @return
*/
public boolean isAppOnForeground(){
// Returns a list of application processes that are running on the
// device
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if(appProcesses ==null)
returnfalse;
for(RunningAppProcessInfo appProcess : appProcesses){
// The name of the process that this object is associated with.
if(appProcess.processName.equals(packageName)
/**
* 可以根据importance的不同来判断前台或后台 RunningAppProcessInfo
* 里面的常量IMOPORTANCE就是上面所说的前台后台
* ,其实IMOPORTANCE是表示这个app进程的重要性,因为系统回收时候,会
* public static final int IMPORTANCE_EMPTY = 500//空进程
* public static final intIMPORTANCE_FOREGROUND = 100//在屏幕最前端、可获取到焦点
* 可理解为Activity生命周期的OnResume();
* public static final int IMPORTANCE_SERVICE = 300//在服务中
* public static final int IMPORTANCE_VISIBLE = 200//在屏幕前端、获取不到焦点可理解为
* Activity生命周期的OnStart()
*/
&& appProcess.importance ==RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
return true;
}
}
return false;
}

我的方法是放在BaseActivity,在onStart和onStop里面分别再判断一次。根据返回值来判断是前台还是后台。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: