在Android应用中,有一种场景是点击通知栏,唤起应用,此场景有如下几种情况:

1 应用在前台,点击通知,直接执行跳转操作;

2 应用在后台,将后台进程唤起到前台,执行跳转操作;

3 应用没有启动,启动应用,执行跳转操作;

4 应用在后台被回收,恢复应用,然执行跳转操作。

目前以下几种方式能够实现上述效果:

1 通过设置Intent的flag,代码如下:

Intent intent = new Intent(this, MainActivity.class);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setAction(Intent.ACTION_MAIN);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

具体的细节还需要在确定,但是存在的一个问题是没有办法通过Intent传递参数;

2 通过ActivityManager获取RunningTasks,如果存在该应用对应的task,则通过

ActivityManager的moveTaskToFront(rti.id, ActivityManager.MOVE_TASK_WITH_HOME);方法将应用唤起到前台,

然后处理相关操作;如果没有相关的task,则直接启动应用即可;

此方法存在的问题是,如果结合Notification使用时,用户点击Notification的时机是不确定的,只能通过广播处理,会比较麻烦;

3 将应用中的MainActivity设置为singleTask,这样点击通知时,如果Activity存在,则会将应用唤起到前台,如果不存在则会创建

新的Activity,

此方法存在的问题是,从Notification跳转,会直接显示MainActivity,跳过launch页,另外,如果MainActivity设置为singleTask之后

再次跳转到MainActivity,那么MainActivity之上已经存在的Activity会被清空,这样用户的操作行为会丢失

每种方式都存在各自的优缺点,需要根据实际需求选取,如果有其它更好的方式,还望多多交流

————————————————

版权声明:本文为CSDN博主「peidonghui」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/peidonghui/article/details/49682159

android 让应用恢复前台显示_Android将后台应用唤起到前台的方法相关推荐

  1. android唤醒前台,Android将后台应用唤起到前台的方法 (SDK 4.0, ActivityLifecycleCallbacks)...

    对于4.0以上的机型也是采用通过Application注册ActivityLifecycleCallbacks接口,对于4.0以下的机型我们会尝试反射ActivityThread中的mInstrume ...

  2. 前台ajax请求php后台返回成功却进error方法解决

    前台ajax请求php后台返回成功却进error方法解决 参考文章: (1)前台ajax请求php后台返回成功却进error方法解决 (2)https://www.cnblogs.com/anniey ...

  3. android 让应用恢复前台显示_Android程序由后台切换到前台

    上篇文章中提到,安全测试的一个需求是每次由后台切换到前台的时候都要走一遍登录界面,登录界面就是我的启动页,讲的是只要在配置文件中设置启动页activity的启动模式为singleTask就可以了,之后 ...

  4. Android将后台应用唤起到前台的方法

    在Android应用中,有一种场景是点击通知栏,唤起应用,此场景有如下几种情况: 1 应用在前台,点击通知,直接执行跳转操作: 2 应用在后台,将后台进程唤起到前台,执行跳转操作: 3 应用没有启动, ...

  5. android 让应用恢复前台显示_android – 当应用程序返回前台时出现问题

    我的应用程序在与其他应用程序玩一段时间后回到前台时崩溃,我无法找到如何解决它. 我的应用程序有一个启动画面活动,它从Web服务加载一些数据并将其放入在扩展应用程序的类中声明的全局静态变量,如this ...

  6. android view的隐藏和显示_Android使用Viewpager实现3D卡片翻动效果

    作者 |  被代码淹没的小伙子地址 |  https://www.jianshu.com/p/ee8a37ea736d 先看效果图: 效果: 1.竖向的Viewpager 2.3D翻动效果 3.Gli ...

  7. android 应用置顶到最前端_Android 将后台应用切换到前台

    目录 需求分析 代码实现 需求分析 1.项目中有一个需求,需要调用打开本地安装好的第三方 APP,然后在某个时刻需要将自己的 APP 仍然从后台切换到前端(置顶). 2.效果如下:点击 "开 ...

  8. adb发送什么命令能在手机屏幕弹窗显示_Android 手机投屏在 Ubuntu 上的方法

    你知道如何将Android手机投屏到Linux系统吗?本文就以 Scrcpy 软件为例,来讲解一下如何将Android手机投屏到Ubuntu系统. Scrcpy 介绍 首先,我们来认识一下Scrcpy ...

  9. Android将后台应用唤起到前台,唤醒APP;

    包名启动即可: Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName ...

  10. android 获取sd卡目录失败_Android获取外置SD卡存储路径的方法

    在开发应用的过程中,经常会遇到需要获取设备存储路径的问题.而从网上看到的很多方法获取到的都是内置存储位置,并非外置SD卡路径,因此我推荐使用反射的机制来获取外置存储的路径. 通常,使用Environm ...

最新文章

  1. 桌面的html文件怎么打开方式,html文件怎么打开
  2. 人工智能模型数据泄露的攻击与防御研究综述
  3. CSS清除浮动大全共8种方法
  4. 六,搭建elasticsearch集群搭建
  5. Linux su切换用户后命令提示符变为bash-4.2$
  6. 数据库设计方法学概述
  7. Eclipse使用之添加字体
  8. 彼之蜜糖,我之砒霜;彼之敝履,吾之瑰宝
  9. 表白代码大全,快来向你的ta表白吧~~~
  10. 谈谈机器视觉的那点事儿!
  11. 许晓斌的《Maven实战》 maven镜像配置
  12. Python数据交互式可视化 - 交互式可视化
  13. 死亡洞穴(cave)
  14. [已解决]关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no enc
  15. iOS开发中键盘样式和自定义键盘。
  16. 想要进行gene prioritization分析,请看这里!
  17. 大数据正在推动新零售发展
  18. 逆水寒商业脚本制作视频
  19. MachineLearning 1. 主成分分析(PCA)
  20. nefuoj 9 喜洋洋

热门文章

  1. 什么是收缩压和舒张压?
  2. 最适合游戏的显卡排行榜,显卡天梯图
  3. Nginx配置项调优
  4. 【黑苹果镜像】macOS Monterey 12.3正式版 (21E230) With OpenCore 0.7.9 and Clover 5144 and winPE原版镜像
  5. linux51单片机烧录程序,单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境...
  6. 全球及中国触屏控制器芯片行业研究及十四五规划分析报告
  7. 北方果蔬谋定三链重构-农业大健康·随秀富:功能性农业理念
  8. Android中调用百度翻译Demo
  9. 谈一谈|《黑神话:悟空》实机演示观后感
  10. 根据日期算星座 mysql,Hive 通过日期计算星座实例