zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    js实现页面的全屏与退出
    vue父组件访问子组件
    v-contextmenu的使用(右键菜单)
    vue实现tab切换
    vue中子组件向父组件传值
    vue中父组件传数据给子组件
    RNN
    用于超参数随机化搜索的几个分布
    Numpy 函数总结 (不断更新)
    神经网络求导
  • 原文地址:https://www.cnblogs.com/wgha/p/5831118.html
Copyright © 2011-2022 走看看