判断Android程序是否在前台运行的两种方法
@Override
protectedvoidonStop(){
if(!isAppOnForeground()){
Debug.i("dwy","enterbackground");
mIsBackground=true;
}else{
Debug.i("dwy","foreground");
mIsBackground=false;
}
JudgeisAppinbackgroundwhenonStop()getcalled.
publicbooleanisAppOnForeground(){
//Returnsalistofapplicationprocessesthatarerunningonthe
//device
ActivityManageractivityManager=(ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
StringpackageName=getApplicationContext().getPackageName();
List<ActivityManager.RunningAppProcessInfo>appProcesses=activityManager
.getRunningAppProcesses();
if(appProcesses==null)
returnfalse;
for(ActivityManager.RunningAppProcessInfoappProcess:appProcesses){
//Thenameoftheprocessthatthisobjectisassociatedwith.
if(appProcess.processName.equals(packageName)
&&appProcess.importance==ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
returntrue;
}
}
returnfalse;
}
方法二:
/**
*需要权限:android.permission.GET_TASKS
*
*@paramcontext
*@return
*/
publicbooleanisApplicationBroughtToBackground(Contextcontext){
ActivityManageram=(ActivityManager)context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo>tasks=am.getRunningTasks(1);
if(tasks!=null&&!tasks.isEmpty()){
ComponentNametopActivity=tasks.get(0).topActivity;
Debug.i(TAG,"topActivity:"+topActivity.flattenToString());
Debug.f(TAG,"topActivity:"+topActivity.flattenToString());
if(!topActivity.getPackageName().equals(context.getPackageName())){
returntrue;
}
}
returnfalse;
}
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志