文档章节

判断程序是否存于前台进程

techstan
 techstan
发布于 2014/04/19 14:36
字数 225
阅读 140
收藏 5

前些天做项目时,需要加入九宫格解锁功能,当程序处于后台进程时,再进入前台进程,弹出九宫格解锁...开始考虑到是否可以用Activity的生命周期来处理,最后发现,当程序开启了另一个Activity他也会弹出九宫格解锁,要的却不是这个效果:

/** 
     * 程序是否在前台运行 
     *  
     * @return 
     */
    public boolean isAppOnForeground() { 
            // Returns a list of application processes that are running on the 
            // device 
              
            ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
            String packageName = getApplicationContext().getPackageName(); 

            List<RunningAppProcessInfo> appProcesses = activityManager 
                            .getRunningAppProcesses(); 
            if (appProcesses == null) 
                    return false; 

            for (RunningAppProcessInfo appProcess : appProcesses) { 
                    // The name of the process that this object is associated with. 
                    if (appProcess.processName.equals(packageName) 
                                    && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { 
                            return true; 
                    } 
            } 

            return false; 
    }

当程序执行onStop()方法时,判断是否处于后台进程...加上全局的标志

程序执行onResume()方法时,根据已经标志的变量。再做相应的操作...



© 著作权归作者所有

共有 人打赏支持
techstan
粉丝 2
博文 7
码字总数 2053
作品 0
深圳
加载中

评论(1)

123__
123__
可以请教一下吗
Linux wait函数解析

进程一旦调用了 wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后...

晨曦之光
2012/03/09
3.5K
0
daemon函数结合脚本实现start, stop, restart

daemon函数 Daemon程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启...

小灰灰Blog
2014/08/29
0
0
Linux环境编程--waitpid与fork与execlp

waitpid waitpid(等待子进程中断或结束) 表头文件 #include #include 定义函数 pidt waitpid(pidt pid,int * status,int options); 函数说明 waitpid()会暂时停止目前进程的执行,直到有信号来...

晨曦之光
2012/03/09
281
0
Windows Phone 7 Series Developer General FAQ(译)

转自 WPWIND 前后台中的应用程序进程 我的程序能运行在后台吗? 不可以,Windows Phone 7 Series的应用程序模型只支持在前台执行。如果另外一个程序(第三方或者内置的)在你的程序正在运行的...

虫虫
2012/01/13
119
0
Python进程线程协程

线程 线程(线程锁、threading.Event、queue 队列、生产者消费者模型、自定义线程池) 进程(数据共享、进程池) 协程 线程 Threading用于提供线程相关的操作。线程是应用程序中工作的最小单...

静水大智
2016/12/23
5
0

没有更多内容

加载失败,请刷新页面

加载更多

误删除innodb ibdata数据文件恢复

今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了。不知道怎么解决。当时我也不知道怎么办。后来查阅相关资料。终找到解决方法。其实恢复也挺简单...

IT--小哥
16分钟前
0
0
常见设计模式UML图

常见设计模式UML图 本文主要总结常见的设计模式的UML图,方便查阅和思考。 创建型模式 简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和单例模式,这五种设计模式主要处理对象的创建...

陶小陶
33分钟前
0
0
分布式缓存架构设计

零、 题记 在高并发场景下,需要通过缓存来减少数据库的压力,使得大量的访问进来能够命中缓存,只有少量的需要到数据库层。由于缓存基于内存,可支持的并发量远远大于基于硬盘的数据库。所以...

Ala6
35分钟前
2
0
简单工厂模式

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一...

NinjaFrog
37分钟前
1
0
git(一) 基本操作(branch、tag、冲突)

layout: blog istop: true title: "git基本操作(branch、tag、冲突)" date: 2018-09-11 category: 版本控制 tags: - 版本控制 撤销操作 修改最后一次提交 解释:修改上次提交。可以修改内容...

开心的哈士奇
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部