检查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();要理解这种方法,请检查并行活动生命周期的答案:活动并行生命周期

陪伴而非守候

到目前为止,我发现的最整洁和不受欢迎的方法是这样做的,如下所示:@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();因为这样,如果屏幕锁定,就不会收到通知。我看了一下框架,其目的还不完全清楚。我会把它移走。检查进程信息状态就足够了:-)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android