如何判断Activity是否在前台显示
转载请备注原文地址: https://www.niwoxuexi.com/blog/android00/article/223.html
我们在Android开发过程中,经常会判断Activity是否在前台显示,来处理某些状态,这里谢了一个静态方法,供大家参考。
方法一:用ActivityManager管理的Activity栈来操作
publicclassCommonUtil{/***判断某个Activity界面是否在前台*@paramcontext*@paramclassName某个界面名称*@return*/publicstaticbooleanisForeground(Contextcontext,StringclassName){if(context==null||TextUtils.isEmpty(className)){returnfalse;}ActivityManageram=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningTaskInfo>list=am.getRunningTasks(1);if(list!=null&&list.size()>0){ComponentNamecpn=list.get(0).topActivity;if(className.equals(cpn.getClassName())){returntrue;}}returnfalse;}}
注意:在 AndroidManifest.xml 文件中添加权限,否则会报错
<uses-permissionandroid:name="android.permission.GET_TASKS"/>
方法二、 在OnResume,和OnPause中记录一个变量
privatebolleanisFront=false;@OverridepublicvoidonResume(){super.onResume();isFront=true;}@OverridepublicvoidonPause(){super.onPause();isFront=false;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。