我们知道SingleTask模式对于Activity的影响如下:

例如我们将Activity A设置为SingleTask模式,其他的Acitivity设置为Standard模式,则有以下效果:

A -> B -> C -> D 我们将Activity A一直跳转到Activity D,如果此时D -> A,则会发生Activity B,C,D都会被pop出栈中Activity A则会显示到栈顶。

我利用这个特性时,处理单端登录:将将Activity A设置成SingleTask模式,并设置成启动的Acitivity,

如果后台告知账号在其他地方登录了,则此时直接将跳转Activity A即可,其他的Acitivity都会被pop出去。

现在问题就来了,我们将App的启动的MainActivity设置为SingleTask模式时,如果我们在App跳转到Activity B时,按下Home键,此时点击App Icon,

此时不是显示Activity B,还是直接会显示Activity A,即是把A上面的Activity都会被pop出去,Activity A显示到栈顶,但这不是我想要的。

问题描述:

My main activity A has as set android:launchMode="singleTask" in the manifest. Now, whenever I start another activity from there, e.g. B and press the HOME BUTTON on the phone to return to the home screen and then again go back to my app, either via pressing the app's button or pressing the HOME BUTTONlong to show my most recent apps it doesn't preserve my activity stack and returns straight to A instead of the expected activity B.

Here the two behaviors:

Expected: A > B > HOME > B
Actual: A > B > HOME > A (bad!)

如何处理呢:

Just remove the launchMode="singleTask" and set FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP flag whenever call an intent to A

链接:https://stackoverflow.com/questions/2417468/android-bug-in-launchmode-singletask-activity-stack-not-preserved

转载于:https://www.cnblogs.com/hbolin/p/11479019.html

Android SingleTask启动模式与Home键的问题相关推荐

  1. Android activity启动模式

    如何正确理解和使用 Activity的4种启动模式 关于Activity启动模式的文章已经很多,但有的文章写得过于简单,有的则过于注重细节,本文想取一个折中,只关注最重要和最常用的概念,原理和使用方法 ...

  2. Android的启动模式(上)

    Android的启动模式(上) 1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动 ...

  3. android四中启动模式

    android四中启动模式分别为 转载于:https://www.cnblogs.com/goneone/p/3490111.html

  4. Android Activity启动模式,回退栈管理!

    (一): Activity被回收了怎么办?当系统内存不足的时候Activity是有可能被回收的,打个比方用户在A Activity启动了B Activity那么A就处于停止状态,由于内存不足A会被回收 ...

  5. Android Activity启动模式总结

    简介 Activity 作为 Android 四大组件之一,几乎是被接触得最多的.Activity 中有个启动模式的概念,分别是 standard.singleTop.singleTask 以及 si ...

  6. Android Activity 启动模式详解

    最近有群里的朋友问我 Activity的四种启动模式分别是什么意思? 当初因为项目比较忙,草草的解释了下, Api文档中说的也只是一般,在这里就小记一下吧,以便有更多的朋友对Activity启动模式了 ...

  7. android activity启动模式_从0系统学Android--2.5Activity启动模式

    本系列文章目录:更多精品文章分类 本系列持续更新中-. Activity 的启动模式一共有四种,分别是:standard.singleTop.singleTask.singleInstance .在实 ...

  8. android activity启动模式_Android知识点【Activity】清单文件

    哈喽 好久不见,最近太忙了 请大家原谅 今天我们来说一下android清单文件Activity都有哪些配置,来先上图: 大家一下子看了这么多属性可能觉得有些懵逼,我这边也是就常用的一些数据给大家做一下 ...

  9. SingleTask启动模式,Intent跳转获取不到Bundle携带的值

    本文转自:https://www.jianshu.com/p/fe98ae8e3fb4 作者:Android平头哥 1.问题描述 今天碰到了一个问题,当一个Activity的启动模式为SingleTa ...

最新文章

  1. 一个线程中lock用法的经典实例
  2. 《Adobe Flash Professional CC经典教程》——1.3 使用“库”面板
  3. python知识思维导图
  4. C语言两个日期比大小,C语言小程序 如何判断两个日期之差
  5. 教你怎么屏蔽掉在移动端的宽带运营商的流量劫持,屏蔽无耻的广告
  6. React开发(170):ant design datapicker限制选择时间
  7. java对mysql查询_如何利用java对mysql数据库进行增删改查
  8. 【系统架构】大型网站架构模式
  9. 常用内存数据库介绍(一)
  10. 【BZOJ 3669】 [Noi2014]魔法森林 LCT维护动态最小生成树
  11. PLC液压控制系列之比例流量阀结构分析
  12. 什么是CDN加速服务器?
  13. 关于Ng-alain的Acl的使用
  14. 机器学习进阶——数据清洗
  15. 舒老师AK的hu测 T1. 迷失沃尔玛(dp+贪心)
  16. 如何思考产品价值定位?
  17. 如何在转换CAD图纸的时候更改背景颜色?
  18. Java篇第三回——运算符、表达式与语句(C不好的也快来)
  19. Excel-VBA应用(1):批量提取单元格中的超链接URL
  20. java解析outlook的msg邮件(outlook-message-parser)

热门文章

  1. Javascript代码优化的8个知识点
  2. 获取Docker中容器的信息
  3. U3D-LookAt插值动画
  4. Linux上DNS实现工具之bind详叙
  5. 用.NET 2.0压缩解压功能处理大型数据
  6. 正如孙正义的时间机器的理论
  7. windows编程,消息函数中拦截消息的问题
  8. U3D中物体的渲染顺序
  9. 毁掉云计算项目的三个“好办法”
  10. 第一个WindowService服务