文档章节

SingleTop的一个小问题

新宿豪雨
 新宿豪雨
发布于 2016/07/29 16:57
字数 205
阅读 3
收藏 0

业务需求:在一个activity中点击按钮更新整个界面的数据。需要startActivity(intent)传递参数。

首先这个activity需要使用singletop模式。在startActivity(intent)之前也需要对intent设置

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

可是点击以后界面没有更新。后来查到原因:intent没有更新。

singletop的生命周期中,第一次打开activity是执行onCreate()---->onStart()---->onResume()

如果再次打开activity则执行onNewIntent()---->onResart()------>onStart()----->onResume()。

这个onNewIntent方法就是更新intent的,里面包含一个Intent参数,就是新的intent。

于是重写这个方法:

@Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        // 解决了singletop传回的intent不更新的问题
    }

setIntent是系统内置方法,可以更新intent,同时在onResume里面getIntent()就直接获得了新的intent。

© 著作权归作者所有

共有 人打赏支持
新宿豪雨
粉丝 0
博文 9
码字总数 2074
作品 0
长沙
私信 提问
Android 深入探讨Activity的四种启动模式

四种启动模式的异同点 1.singleTask,singletop,singleInstance 某种情况下基本上都具有保证Activity在任务栈中具有唯一性 2.singleTask和singleTop实例存在时,singleTask不会创建实例,sin...

IamOkay
2014/11/22
0
0
活动的启动模式汇总

启动模式一共有四种,分别是 standard、singleTop、singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给标签指定android:launchMode属性来选择启动模式,如: android:launc...

sylan215
2015/10/10
0
0
Android中Activity启动模式详解

Android中Activity启动模式详解   在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方...

大凉龙雀
2013/05/25
0
1
Activity 四种启动模式

standard:Activity的默认加载方法,即使某个Activity在Task栈中已经存在,另一个activity通过Intent跳转到该activity,同样会新创建一个实例压入栈中。例如:现在栈的情况为:A B C D,在D...

hanzhankang
2014/02/11
0
0
Android中Activity启动模式详解

 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。   Android总Activity的启动...

带梦想一7飞
2013/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初探Spring Cloud(一)

1. 什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,...

__HuWei
18分钟前
0
0
Mac配置ssh免密钥登录

Mac终端每次使用ssh -p 22 user@ip登录很是麻烦,下面介绍配置ssh免密钥登录: cd ~/.ssh下创建conf文件,写入以下配置: Host test HostName ip Port 22 IdentityFile /Users/t/key/test.p...

littlemesieV
33分钟前
1
0
Spark2.0操作ES

ES提供了支持包来方便的操作ES。首先添加ES的依赖maven: <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-20_2.11</artifactId> <version>6.2.0</ver......

守望者之父
35分钟前
1
0
专业术语

1、防御性编程 DruidDataSource类有一个init方法,我们在spring中配置druid时,都会指定 init-method='init'. 而且DruidDataSource也在其他地方,诸如getConnection()方法里作了防御性编程, 也就...

still5656
37分钟前
1
0
微信开发--测试账号相关

1、微信公众平台选择代码开发后,其平台上的部分功能会不可用 可在开发者工具中选择开通测试账号,进行相关的功能调试(测试账号出微信支付不可调试外,其他功能基本上都可以调试) 2、测试账号...

Code辉
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部