美文网首页
SingleTop启动模式真的可以防止多次打开栈顶的Activi

SingleTop启动模式真的可以防止多次打开栈顶的Activi

作者: 第三个人格 | 来源:发表于2021-03-25 15:05 被阅读0次

    SingleTop启动模式真的可以防止多次打开栈顶的Activity么

    首先要知道什么是singleTop?

    有新的页面启动请求时,当目标Activity处于当前栈顶时,会调用Activity的onNewIntent()方法,但不创建新实例。如果栈顶没有目标Activity则创建。

    实际操作:

        先在AndroidManifest.xml中将目标activity中的属性launchMode设置成singleTop,然后在activity中设置onClick事件。

    图1

    图1中点击事件确实可以防止手动连续多次点击,跳转页面。

    但是,如果在代码中多次跳转页面呢:

    图2

    图2中,如果是程序执行的多次跳转同一个目标页面,startActivty无法反映过来,还没来得及判断目标页面是否是singleTop的启动模式,就已经跳转过去了。可能是代码比xml属性更先执行(具体情况可以了解下startActivty启动的流程)。所以可以用以下方法来解决这种问题:

    图3

    在intent中设置flag,这样就保证了,只会有一个。

    相关文章

      网友评论

          本文标题:SingleTop启动模式真的可以防止多次打开栈顶的Activi

          本文链接:https://www.haomeiwen.com/subject/xealhltx.html