文档章节

应用程序在后台运行,在后台执行startActivity后会强制把界面带到前端解决方案

tyronejw
 tyronejw
发布于 2016/02/25 10:47
字数 360
阅读 838
收藏 1

在项目中,难免会遇到耗时操作,我们都将其写入子线程,但耗时操作结束后则可能需要跳转,但如果用户此前已经将app调成后台程序,此时在进行跳转,Android5.0之后会将app提升为前台应用,也就是用户在操作其他应用是,我们的app会突然蹦出来,这样的体验自然不好。在我们项目中,解决方法是:

1、耗时操作结束后,进行判定,应用是否是前台应用,如果是,可进行耗时操作

2、如果耗时操作结束后,应用已经被用户调整为后台应用,则在onRestart中进行跳转操作(在此处还需添加一个标记,跳转后标记失效,以免跳转页面关闭后,重新展现该页面,又会再次跳转),这样用户在下次再次开启app的时候,直接跳转到对应的页面。

判断是否为前台应用的方法:

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

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


© 著作权归作者所有

共有 人打赏支持
tyronejw
粉丝 3
博文 126
码字总数 20540
作品 0
深圳
私信 提问
iOS从程序的点击到程序死亡(App的一辈子)

项目中出现了一个消息角标设置的bug,涉及到UIApplication对象的处理。在此记录下加深对UIApplication的理解。 一、UIApplication的基础认识 UIApplication是应用级别的一个单例。我们一个应...

gitzhengjianhua
2016/11/17
55
0
C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统、微信应用、微信小程序、APP等方面,都可以直接调用...

walb呀
2017/12/04
0
0
教你如何从零开始搭建你的第一款小程序

从微信的诞生,到微信公众号、微信支付,再到小程序,腾讯生态在一次又一次影响用户行为习惯的同时,也为开发者提供了新的思路和技能发展方向。无可置疑,微信小程序开发浪潮已经来临,也将在...

hywoniuge
2018/10/28
0
0
只需5步,从0开始搭建你的第一款小程序

从微信的诞生,到微信公众号、微信支付,再到小程序,腾讯生态在一次又一次影响用户行为习惯的同时,也为开发者提供了新的思路和技能发展方向。无可置疑,微信小程序开发浪潮已经来临,也将在...

micf435p6d221ssdld2
2018/05/08
0
0
简单5步,从0开始搭建你的第一款小程序

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 从微信的诞生,到微信公众号、微信支付,再到小程序,腾讯生态在一次又一次影响用户行为习惯的同时,也为开发者提供了新的思路和...

腾讯云加社区
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
23分钟前
0
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
28分钟前
0
0
EOS主网数据同步指南

本文介绍如何安装EOS节点软件并接入EOS主网,主要包括以下内容: 如何安装EOS节点软件 如何配置EOS节点软件接入主网 如何启动EOS节点软件与主网数据同步 如何检查主网数据同步进度 如何正确地...

汇智网教程
33分钟前
0
0
matlab-线性代数 齐次方程组 基础解系和通解

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclc% x1+2*......

志成就
58分钟前
2
0
一线互联网技术推荐:Java工程师架构知识系统化汇总,面完45K!

根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。 在此基础上,互联网行业针对 Java 开发的招聘需求,也是近年技术类岗位供...

java知识分子
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部