如何判断Activity是否在前台显示

2023-05-16

转发请备注原文地址:https://www.niwoxuexi.com/blog/android00/article/223.html

我们在Android开发过程中,经常会判断Activity是否在前台显示,来处理某些状态,这里谢了一个静态方法,供大家参考。

方法一:用ActivityManager管理的Activity栈来操作


public class  CommonUtil{
    /**
     * 判断某个Activity 界面是否在前台
     * @param context
     * @param className 某个界面名称
     * @return                  
     */
    public static boolean  isForeground(Context context, String className) {
        if (context == null || TextUtils.isEmpty(className)) {
            return false;
        }

        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1);
        if (list != null && list.size() > 0) {
            ComponentName cpn = list.get(0).topActivity;
            if (className.equals(cpn.getClassName())) {
                return true;
            }
        }

        return false;

    }
}
  

注意:在 AndroidManifest.xml 文件中添加权限,否则会报错


<uses-permission android:name="android.permission.GET_TASKS"/>
  

方法二、 在OnResume,和OnPause中记录一个变量


private bollean isFront = false;

@Override
public void onResume() {
    super.onResume();
    isFront = true;
}

@Override
public void onPause() {
    super.onPause();
    isFront = false;
}

我们在Android开发过程中,经常会判断Activity是否在前台显示,来处理某些状态,这里谢了一个静态方法,供大家参考。

方法一:用ActivityManager管理的Activity栈来操作


public class  CommonUtil{
    /**
     * 判断某个Activity 界面是否在前台
     * @param context
     * @param className 某个界面名称
     * @return                  
     */
    public static boolean  isForeground(Context context, String className) {
        if (context == null || TextUtils.isEmpty(className)) {
            return false;
        }

        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1);
        if (list != null && list.size() > 0) {
            ComponentName cpn = list.get(0).topActivity;
            if (className.equals(cpn.getClassName())) {
                return true;
            }
        }

        return false;

    }
}
  

注意:在 AndroidManifest.xml 文件中添加权限,否则会报错


<uses-permission android:name="android.permission.GET_TASKS"/>
  

方法二、 在OnResume,和OnPause中记录一个变量


private bollean isFront = false;

@Override
public void onResume() {
    super.onResume();
    isFront = true;
}

@Override
public void onPause() {
    super.onPause();
    isFront = false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断Activity是否在前台显示 的相关文章

  • 解决Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“

    安装Python后 xff0c 安装扩展包的过程中发生了错误 xff0c 提示Microsoft Visual C 43 43 14 0 or greater is required Get it with 34 Microsoft C 4
  • Oracle VM VirtualBox退出全屏的方法

    Oracle VM VirtualBox 退出全屏的方法 键盘 右Control 43 f 键
  • springboot中统一日志管理

    Springboot中统一日志管理 一 为什么要用日志 xff1f 一般分为两个大类 xff1a 操作日志和系统日志 操作日志 xff1a 用户在操作软件时记录下来的操作步骤 xff0c 便于用户自己查看 主要针对的是用户 系统日志 xff
  • 用脚本批量执行redis命令

    最近在维护一个用redis做缓存的项目时 xff0c 遇到了产品需要不定时清除用户数据的需要 xff0c 由于每次要清除的用户数据很多 xff0c 每次手动删除的话比较繁琐 xff0c 最后采用了批处理脚本的方式来执行清除的命令 首先将要执
  • <STL>学习string

    string https www bilibili com video BV1P7411k7Km p 61 17 头文件 span class token macro property span class token directive
  • Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强(C#)

    Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强 xff08 C xff09 Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI S
  • Baumer工业相机堡盟工业相机使用BGAPI SDK将图像数据转换为Bitmap的几种方式(C#)(RGB)

    Baumer工业相机堡盟工业相机使用BGAPI SDK将图像数据转换为Bitmap的几种方式 xff08 C xff09 xff08 RGB xff09 Baumer工业相机Baumer工业相机图像数据转为Bitmap的技术背景Baumer
  • 【集合】统一身份认证(CAS)和OAuth2的工作流程

    一 CAS协议 单点登录SSO Single Sign ON xff0c 指在多个应用系统中 xff0c 只需登录一次 xff0c 即可在多个应用系统之间共享登录 如 xff1a 在学校登录了OA系统 xff0c 再打开科研 教务系统 xf
  • 英文突然间隔变大

    之前总是遇到一个尴尬的问题 xff0c 就是写文档的时候间距突然变大 xff0c 调整段落间距并未没有效果 xff0c 例如这种 xff1a 解决办法 xff1a Shift 43 空格
  • JAVA从入门到精通(2)

    一 Java中的关键字 1 关键字 xff1a 具有一些特殊用途的词 2 注 xff1a 在程序中应用关键词需要慎重 xff01 3 常用的关键词 xff08 举例说明 xff09 interface xff1a 接口 class 类 pu
  • myeclipse闪退的问题

    之前遇到myeclipse的闪退 xff0c 探索了之后 xff0c 找到了方法 xff0c 今天早上又遇到这种问题 xff0c 按照上次的方法尝试是没有问题的 决定和大家分享 删除 workspace xff08 工作空间 xff09 m
  • JAVA从入门到精通(14)-- 包装类

    一 包装类 1 基本数据类型是不具备对象的特征的 xff0c 比如基本数据类型不能调用方法 功能简单 xff0c 为了让基本数据类型具备对象的特性 xff0c Java为每个基本数据类型提供了一个包装类 2 3 包装类主要提供了两大类方法
  • JAVA从入门到精通(16)-- Java版JSON入门

    一 JSON课程介绍 1 JSON是行业内使用最为广泛的数据传输格式 定义 xff1a JSON是一种与开发语言无关的 轻量级的数据格式 全称是JavaScript Object Notation 优点 xff1a 易于人的阅读和编写 xf
  • JAVA从入门到精通(17)-- GSON

    一 GSON介绍 1 介绍 xff1a GSON最早由Google提出的开源的项目 xff0c 主页在github上 xff0c 解析json 二 GSON生成JSON数据 1 加入依赖 xff0c 创建包和类 2 创建Gson对象 Man
  • JAVA从入门到精通(18)-- Servlet

    一 Servlet定义 1 现有JSP还是先有Servlet xff1f 先有的Servlet xff0c 因为JSP的前身就是Servlet 2 定义 xff1a Servlet是在服务器上运行的小程序 一个Servlet就是一个Java
  • vue数据双向绑定

    5 Vue数据双向绑定 5 1 什么是双向数据绑定 Vue js 是一个 MVVM 框架 xff0c 即数据双向绑定 xff0c 即当数据发生变化的时候 xff0c 视图也就发生变化 xff0c 当视图发生变化的时候 xff0c 数据也会跟
  • Nmap入门到高级【第九章】

    预计更新 Nmap基础知识 1 1 Nmap简介和历史 1 2 Nmap安装和使用方法 1 3 Nmap扫描技术和扫描选项 Nmap扫描技术 2 1 端口扫描技术 2 2 操作系统检测技术 2 3 服务和应用程序检测技术 2 4 漏洞检测技
  • QEMU-IMG命令详解

    qemu img是QEMU的磁盘管理工具 xff0c 在qemu kvm源码编译后就会默认编译好qemu img这个二进制文件 qemu img也是QEMU KVM使用过程中一个比较重要的工具 xff0c 本节对其用法和实践使用方法进行介绍
  • 麒麟系统开机自启的实现方式

    方法 xff1a 利用Linux的 desktop文件实现开机启动 xff0c desktop文件位于在 etc xdg autostart目录下 举例 在 etc xdg autostart 目录下建立一个 test desktop文件
  • ifconfig与 ip addr命令详细

    文章目录 前言一 如何查看机器的IP地址二 网卡信息详解1 网卡名称2 网络设备状态标识3 IP地址4 MAC地址 三 ifconfig与 ip addr区别 前言 本文记录在linux系统下如何查看ip信息 网卡状态等信息以及简要说明if

随机推荐

  • Linux网卡ifcfg网卡配置项详解

    前言 由于在工作中涉及到服务器网卡的适配 xff0c 算是linux新手 xff0c 本次记录下linux网卡ifcfg exx配置项含义说明 xff0c 以下是某款终端下centos 7 5系统自动生成的网卡配置内容 xff1a span
  • Determining IP information for eth问题解决

    前言 在Linux网卡ifcfg网卡配置项详解文章中提到一个BOOTPROTO 61 配置项 它的意思是指网卡启动时获取ip的方式 xff0c 可以是dhcp或者静态ip 方式 xff0c 如果设置为none说明是不指定ip设置方式 一 问
  • 关于vector大小(size)和容量(capacity)总结

    操作大小的函数 在Vector容器中有以下几个关于大小的函数 方法效果size 返回容器的大小empty 判断容器是否为空max size 返回容器最大的可以存储的元素capacity 返回容器当前能够容纳的元素数量 例子一 xff1a 该
  • inet_addr 和inet_ntoa函数作用

    我们使用socket进行通信的时候 xff0c 我们需要指定三个元素 xff1a 通信域 xff08 地址族 xff09 IP地址 端口号 xff0c 这三个元素由SOCKADDR IN结构体定义 xff0c 为了简化编程一般将IP地址设置
  • visual studio中头文件和库文件路径设置

    在程序开发中 xff0c 很多时候需要用到别人开发的工具包 xff0c 如OpenCV和itk 一般而言 xff0c 在vs中 xff0c 很少使用源文件 xff0c 大部分是使用对类进行声明的头文件和封装了类的链接库 xff08 静态li
  • LNK2001: 无法解析的外部符号的几种情况

    一般来说 xff0c 我们引用第三方库时 xff0c 需要进行指定依赖项配置 xff0c 若没有进行相关配置 xff0c 则编译器会出现 LNK2001 无法解析的外部符号 错误 这个是最常见的问题 xff0c 具体步骤 xff1a 项目
  • JMeter

    Apache JMeter 压力测试工具 一 什么是Apache JMeter Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具 xff0c 用于对软件做压力测试 JMeter 最初被设计用于 Web 应
  • C++11向线程函数传递参数

    template span class token operator lt span class Function span class token punctuation span class span class token punct
  • C++11之std::future对象使用说明

    std future介绍 在前面几篇文章中基本都用到thread对象 xff0c 它是C 43 43 11中提供异步创建多线程的工具 但是我们想要从线程中返回异步任务结果 xff0c 一般需要依靠全局变量 xff1b 从安全角度看 xff0
  • delete 和 delete[]真正区别

    我们通常从教科书上看到这样的说明 xff1a delete 释放new分配的单个对象指针指向的内存 delete 释放new分配的对象数组指针指向的内存 那么 xff0c 按照教科书的理解 xff0c 我们看下下面的代码 xff1a spa
  • Activity的onNewIntent

    一个应用的Activity可供多种方式调用启动 xff0c 当多个调用希望只有一个Activity的实例存在 xff0c 并且还要区分是被谁启动或是已经启动被谁拉到前台来的 xff0c 这就需要Activity的onNewIntent In
  • at 与 crontab调度命令详解

    目录 1 At调度 只执行一次 1 1准备任务 xff1a 查看at服务是否开启 1 2绝对时间定制任务 1 3相对时间定制任务 1 4查看at进程 1 5删除at任务 2 crontab调度 可重复执行 2 1简述 2 2crontab调
  • [计算机网络] --- STP (下篇) 工作原理及配置

    文章目录 前言一 stp工作原理二 stp计算过程 工作步骤1 选举根桥2 选举根端口3 选举指定端口4 确立阻塞端口 三 例题 xff1a 前言 上一篇文章我们介绍了stp的起源和一些相关术语 xff0c 接下来我们就正式开始介绍stp的
  • iOS富文本实现(一):私密阅读效果

    废话不多说 xff0c 咱们直接先看效果 xff01 看是不是咱想要的哈 目录 xff1a 一 前言 xff1a 二 核心需求说明 三 实现效果核心代码片段 四 几个注意的小细节 一 前言 xff1a 我的第一篇CSDN文章就这样发布了 x
  • 登录 注册 servlet基础

    工具类 页面与数据库的交换 span class token keyword package span org span class token punctuation span lizhenhua span class token pun
  • 解决Ubuntu开机之后不显示桌面图标,只显示桌面文件的问题

    Ubuntu开机之后不显示桌面图标 xff08 指左侧那一栏 xff09 xff0c 但桌面上的文件可以使用 xff0c 鼠标可以使用 鼠标右键 gt 打开终端 xff1b xff08 如果鼠标不能使用 xff0c 按ctl 43 alt
  • yii2中登录后跳转回登录前请求的页面

    yii2中登录后跳转回登录前请求的页面 作者 php 发布时间 2017 06 16 浏览 1030次 转发请备注原文地址 xff1a www niwoxuexi com blog php article 158 html yii2中登录后
  • Gateway

    Gateway SpringCloud微服务网关组件 一 Spring Cloud Gateway简介 1 为什么要用Gateway xff1f 在微服务架构中 xff0c 通常一个系统会被拆分为多个微服务 xff0c 微服务之间的调用可以
  • Android(安卓)时间戳和日期之间的转化

    注 xff1a 转发请注明原地址 xff1a https www niwoxuexi com blog android article 170 在Android开发过程中 xff0c 经常会遇到日期的各种格式转换 xff0c 主要使用Sim
  • 如何判断Activity是否在前台显示

    转发请备注原文地址 xff1a https www niwoxuexi com blog android00 article 223 html 我们在Android开发过程中 xff0c 经常会判断Activity是否在前台显示 xff0c