FLAG_ACTIVITY_SINGLE_TOP :如果当前栈顶的activity就是要启动的activity,则不会再启动一个新的activity

实例:

我们有一个apk,apk中包含两个Activity:MainActivity和ActivityA,点击MainActivity启动ActivityA,点击ActivityA还是启动ActivityA,但我们设置FLAG_ACTIVITY_SINGLE_TOP标记:

[java] view plain copy
print?

public void onClick(View v) {  
        // TODO Auto-generated method stub  
        Log.i(TAG, "--onClick--task id = " + getCurrentTaskId());     
          
        Intent intent = new Intent("com.leaves.ipanel.ActivityA");    
        //intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);  
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);  
        startActivity(intent);   
    }

启动动ActivityA,随便我们怎么再点击,都只有一个ActivityA实例,堆栈:

[plain] view plain copy
print?

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)  
      Main stack:  
        TaskRecord{438f1ed8 #9 A com.leaves.ipanel U 0}  
        Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.leaves.ipanel/.MainActivity }  
          Hist #2: ActivityRecord{4265b1b0 u0 com.leaves.ipanel/.ActivityA}  
            Intent { act=com.leaves.ipanel.ActivityA flg=0x20000000 cmp=com.leaves.ipanel/.ActivityA }  
            ProcessRecord{4292a550 2115:com.leaves.ipanel/u0a10061}  
          Hist #1: ActivityRecord{42485758 u0 com.leaves.ipanel/.MainActivity}  
            Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.leaves.ipanel/.MainActivity }  
            ProcessRecord{4292a550 2115:com.leaves.ipanel/u0a10061}  
        TaskRecord{426f4820 #2 A com.android.launcher U 0}  
        Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.android.launcher/com.android.launcher2.Launcher }  
          Hist #0: ActivityRecord{4291c7b0 u0 com.android.launcher/com.android.launcher2.Launcher}  
            Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher }  
            ProcessRecord{4267f0b8 636:com.android.launcher/1000}

Android之FLAG_ACTIVITY_SINGLE_TOP相关推荐

  1. android+图标闪烁动画,如何在android中闪烁通知图标? [DONE]

    我找到了解决方案:我创建了动画文件并设置了该文件,感谢我找到了解决方案 SET FILE名称在这里: – int icon = R.drawable.animationfile; long when ...

  2. Android Splash界面支持用户点击 直接进入主界面

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23613403 现在大部分APP都有Splash界面,下面列一下Splash页面的 ...

  3. Android 之Tasks和Back Stack(任务和返回栈)

    2019独角兽企业重金招聘Python工程师标准>>> 介绍: 应用通常包含多个Activity.每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他 Act ...

  4. 01.Android之基础组件问题

    2019独角兽企业重金招聘Python工程师标准>>> 目录介绍 1.0.0.1 说下Activity的生命周期?屏幕旋转时生命周期?异常条件会调用什么方法? 1.0.0.2 后台的 ...

  5. android 登录组件开发,Android组件化开发路由的设计

    调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先做个比较实用的. VpRouter路由框架主要应用于组件化开 ...

  6. Android开发者指南(4) —— Application Fundamentals

    前言 本章内容为开发者指南(Dev Guide)/Framework Topics/Application Fundamentals,版本为Android2.3 r1,翻译转载并整理自译言:" ...

  7. Android更新带进度条的通知栏

    在网上查询了下,Android版本号更新通知栏带进度条,醉了,基本都是复制过来.有的代码不全,连源代码下载都没有,有下载也须要积分.还不能用.真黑心啊!! 之前自己也写过自己定义通知栏Notifica ...

  8. Android 启动模式简介

    2019独角兽企业重金招聘Python工程师标准>>> 预备知识 启动模式 standard模式(默认):只要创建了Activity实例,一旦激活该Activity,则会向任务栈中加 ...

  9. Android四种Activity的加载模式(转)

    建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型: http://www.cnblogs.com/ghj1976/archive/2011/0 ...

最新文章

  1. OEM, ODM, OBM
  2. word中复制、双击打开编辑公式(Axmath/mathtype)出现卡死(无响应)现象的解决方案
  3. AFNetworking post请求遇到问题解决过程
  4. linux之find命令,Linux基础知识之find命令详解
  5. 学习_HTML5_day2
  6. 线程也不是越多越好,多少是好?
  7. 不允许更改采购订单币种
  8. mysql php 时间比较大小_mysql中日期大小比较实例
  9. npm设置和取消代理的方法
  10. 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了
  11. c++质数判定及输出质数表
  12. COLDFUSION
  13. 超星武汉分公司实习(web前端)第一周
  14. java怎么绘画坦克_坦克游戏教程一:使用java绘图功能绘制简单坦克
  15. Matlab:创建字符串数组
  16. TR069协议向导—— 一个帮助你了解TR069协议的简明教程(二)
  17. cmd下使用命令切换目录
  18. 商城 打印订单时 订单怎么实现自动分页
  19. 本地主机如何访问虚拟主机服务器
  20. Non-local算法笔记

热门文章

  1. 巧用定时任务监控第三方组件是否正常
  2. WPF 仿QQ登录框翻转效果
  3. RabbitMQ 入门:1. Message Broker(消息代理)
  4. 巧用 Lazy 解决.NET Core中的循环依赖关系
  5. 尝鲜!.NET5实操之docker+k8s,这10个坑,你不得不知!
  6. ASP.NET Core使用HostingStartup增强启动操作
  7. 深度探秘.NET 5.0
  8. ​如何编写高质量的C#代码(一)
  9. .NET Core 收徒,有缘者,可破瓶颈
  10. 使用腾讯云提供的针对Nuget包管理器的缓存加速服务