文档章节

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的四种LaunchMode!!!

本文转自: http://marshal.easymorse.com/archives/2950. 写的非常好,分享给大家!!! 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能...

鉴客
2011/09/18
5.1K
5
Activity 四种启动模式

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

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

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

大凉龙雀
2013/05/25
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部