SingleTop的一个小问题
SingleTop的一个小问题
新宿豪雨 发表于1年前
SingleTop的一个小问题
  • 发表于 1年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 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。

标签: Android intent
共有 人打赏支持
粉丝 0
博文 9
码字总数 2074
×
新宿豪雨
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: