猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
检查Android应用程序是否在前台?
检查Android应用程序是否在前台?
对于这个问题,我做了很多回答,但这都是关于单一的活动。如何检查整个应用程序是否在前台运行呢?
当年话下
浏览 529
回答 3
3回答
繁花如伊
在.上所有活动扩展的基本活动:protected static boolean isVisible = false;@Overridepublic void onResume() { super.onResume(); setVisible(true);}@Overridepublic void onPause() { super.onPause(); setVisible(false);}每当您需要检查您的应用程序活动是否在前台时,只需检查 isVisible();要理解这种方法,请检查并行活动生命周期的答案:活动并行生命周期
0
0
0
陪伴而非守候
到目前为止,我发现的最整洁和不受欢迎的方法是这样做的,如下所示:@Overridepublic boolean foregrounded() { ActivityManager.RunningAppProcessInfo appProcessInfo = new ActivityManager.RunningAppProcessInfo(); ActivityManager.getMyMemoryState(appProcessInfo); return (appProcessInfo.importance == IMPORTANCE_FOREGROUND || appProcessInfo.importance == IMPORTANCE_VISIBLE)}它只适用于SDK 16+。编辑:我从解决方案中删除了以下代码:KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); // App is foreground, but screen is locked, so show notificationreturn km.inKeyguardRestrictedInputMode();因为这样,如果屏幕锁定,就不会收到通知。我看了一下框架,其目的还不完全清楚。我会把它移走。检查进程信息状态就足够了:-)
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Android
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续