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

转载请备注原文地址: 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;
}
时间: 2024-10-07 02:31:20

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

如何知道某个ACTIVITY是否在前台?

本文链接:http://zengrong.net/post/1680.htm 有一个Android应用包含包含一个后台程序,该程序会定期连接服务器来实现自定义信息的推送.但是,当这个应用处于前台的时候,后台程序就没有必要连接服务器了.这样可以节省网络资源,也更省电. 用什么方法知道该应用是否处于前台呢? 网上搜到的方法大多数都是使用下面的代码: 1 2 3 4 5 6 ActivityManager am = (ActivityManager) this.getSystemService(ACT

IOS 判断当前UIViewController 是否正在显示

我通常的做法是根据视图控制器的生命周期来判断,其是否是正在使用的状态. 举例 设一个实例布尔变量isVisible  在 -ViewWillAppear 里面 isVisible = YES ;  在-ViewWillDisappear 里面 isVisible = NO;   然后根据条件需要实施方法 最近同事分享一个巧妙方法如下:http://edsioon.me/if-uiviewcontroller-is-display/ 判断UIViewController是否正在显示 2014年4月

smarty循环遍历数据库表后在前台显示

1,smarty使用PDO方式循环遍历 <?php //初始化 require '../libs/Smarty.class.php'; // require 'chuan.php'; $smarty = new Smarty; //配置 // $smarty->debugging = true; $smarty->caching = false; $smarty->force_compile=true; //基本操作 function cc(){ try{ $dbh = new P

Android 判断app是否在前台还是在后台运行

Android 判断app是否在前台还是在后台运行,直接看代码,可直接使用. public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activity

Android - Activity定制横屏(landscape)显示

Activity定制横屏(landscape)显示 本文地址: http://blog.csdn.net/caroline_wendy Android横屏(landscape)显示: android:screenOrientation="landscape" 可以在特定的Activity中声明,这个属性,则默认会是横屏; screenOrientation的属性需要定义在Activity内, 即AndroidManifest的<activity>; 作用于Activity的

Bringing the activity to foreground 将activity切换到前台

今天遇到这个问题,找了很久,网上一些解决方法不够完全.特做此记录: 经测试以下方法不能将在后台运行的activity切换到前台运行! 1 Intent i = new Intent(); 2 i.setClass(this, MainActivity.class); 3 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 4 startActivity(i); 必须要将i替换为getApplicationContext()才可以将MainActivity运行,但

MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示(补充)

在2.1.栏目的前台显示中因右键没有添加视图把微软给鄙视了一下,后来有仔细研究了一下发现应该鄙视自己,其实这个功能是有的,是自己没搞清楚乱吐糟. 其实只要在NuGet中安装两个包(Microsoft.VisualStudio.Web.CodeGeneration.Tools和Microsoft.VisualStudio.Web.CodeGenerators.Mvc)就可以了.如下图: 是不是熟悉的感觉又回来了.. 现在可以用右键的在弹出的对话框中添加视图了.在实际的使用中模板,可以选择Creat

MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示

上次创建了栏目模型,这次主要做栏目的前台显示.涉及到数据存储层.业务逻辑层和Web层.用到了迁移,更新数据库和注入的一些内容. 一.添加数据存储层 1.添加Ninesky.DataLibrary(与上次添加方法相同) 在解决方案(Ninesky)上点右键->添加->新建项目 选择.NET Core –> Class Library(.NET Core) 名称输入:Ninesky.DataLibrary(数据访问存储功能在这个项目中实现) 2.为项目添加EntityFrameworkCor

怎么在前台显示图片而不是图片路径

在程序的调用编辑器的时候会出现在前台调用时,前台显示的是编辑器的内容(如很多html的标签会显示出来,而不是根据标签显示出它的内容),这时,应该怎么办? 在代码中有一个很好用的html用法,就是@Html.Raw(). 如@Html.Raw(@model.content),这时就会正确显示编辑器内容. @Html.Raw() 方法输出带有html标签的字符串.