intent传值更新问题

简介:

原文:http://phenix.blogbus.com/logs/220656659.html

在做android推送的功能时,发现一个基础问题.activity的启动模式是singleTask.activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.如果要启动的activity是已经存在的,这时候通过getInten()方法获取到的intent是已启动的activity的原始intent.换句话说intent的数据没有更新.这样在已启动的activity里拿到的intent的数据是旧数据.如果要每次获取intent传来的新数据就需要在onNewIntent(Intent intent)方法里调用setIntent(intent)设置这个传来的最新的intent.


如果activity的启动模式是standard,那么每次都重新创建一个新的activity.这样intent也是最新的.就不用通过setIntent来更新这个intent.


另外发现一个问题是PendingIntent在启动activity的时候需要将构造里的第4个参数设置为PendingIntent.FLAG_UPDATE_CURRENT.否则这个PendingIntent如果存在也不会更新.那么传过去的数据仍然是旧数据.


相关文章
|
Android开发
Android 13 Qs面板的加载流程
Android 13 Qs面板的加载流程
1553 0
Android 13 Qs面板的加载流程
|
机器学习/深度学习 算法 数据挖掘
神经网络训练失败的原因总结 !!
神经网络训练失败的原因总结 !!
410 0
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
690 6
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
376 1
|
关系型数据库 Java 数据库
后端开发之道:从新手到高手的蜕变之旅
在数字时代的浪潮中,后端开发如同一座灯塔,指引着应用程序稳定运行的方向。本文将通过浅显易懂的语言,带领初学者了解后端开发的基本概念、核心技能和职业发展路径。我们将一起探索如何从零基础起步,逐步成长为一名能够独当一面的后端开发高手。无论你是编程新手,还是希望深化后端知识的开发者,这篇文章都将为你的职业之路提供宝贵的指导和启示。
|
Android开发
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
1458 0
|
Android开发 容器
|
JSON 编译器 数据格式
LaTeX在VScode下的环境配置教程
LaTeX在VScode下的环境配置教程
1247 0
LaTeX在VScode下的环境配置教程