• Activity的四种启动模式


    standard 默认的模式

    就是那种你可以一直创建他的实例例如你创建了Activity a之后再startActivity a,还是会创建一个一模一样的,就和平常的使用一个样子

    singleTop

    这种模式是 在创建了Activlty a 之后再创建Activity a的时候 就不会创建成功,而是会调用你第一个创建的Activyt a里面的getNewIntent方法。。。但是要注意的是你的Activity a这时候在栈顶的时候再创建Activity a才会不重复创建,在栈顶的意思就是你当前这个页面就是Activity a,如果你在a的时候 startActivity了 Activity b,之后再创建Activiyt a是不会调用Activity a的getNewIntent方法的,因为他此时不会处于栈顶

    singleTask

    就是创建了Activitiy a,之后又创建了b c d,当在d的时候再创建a,会把中间的b c都finish了。。意思就是这个栈中该Activity的实例只能存在一个,并且会将中间的都清空,并且调用自身的getNewIntent方法,如果是Activity a创建了Activity a 则只会调用自己的getNewIntent。 适用的场景:当你要创建一个东西(页面0),比如第一个页面要选择时间,第二个页面要选择地点,第三个页面选择费用,在第三个页面选择完成后,要把 1 2 3 页面拿到的东西回传给页面0,有两种方式,一种就是startActivityForRsult,但是每个页面都要加一次。。这样子感觉比较复杂,这时候只要将创建东西的页面改为singleTask就能完美解决这个问题。。。

    singleInstance

    如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;
    大概就是比如来了通知,要打开Activity a,之后另外一个应用也要打开Activity a这样子会进入到两个不同的栈中,设置他的属性为singleInstace就会使他们进入到同一个栈。。不会重复创建Activity。

  • 相关阅读:
    2019第17周日
    完成胜过完美
    系统可扩展设计方法之消息队列
    mac下使用brew安装java等应用
    mac下zsh的使用:主题、z命令
    PyCharm中Python代码提示:Shadows name from outer scope
    python垃圾回收杂谈
    Python垃圾回收机制及gc模块详解:内存泄露的例子
    aa
    python的内存回收机制即gc模块讲解
  • 原文地址:https://www.cnblogs.com/wgha/p/5831118.html
Copyright © 2020-2023  润新知