当前位置:   article > 正文

SingleTop的一个小问题

使用singletop后页面返回onnewintent没有执行

业务需求:在一个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。

于是重写这个方法:

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

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

转载于:https://my.oschina.net/u/2524924/blog/720791

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法设计者/article/detail/60698
推荐阅读
  

闽ICP备14008679号