美文网首页
每周学习记录(一)

每周学习记录(一)

作者: MiniMo_IriS_莫先生 | 来源:发表于2019-06-01 20:45 被阅读0次

    Android的Activity四种启动模式

    standard

    activity的默认启动模式。在同一个任务栈中可存在多个activity实例。

    singleTop

    若某个任务栈的栈顶存在activity A,此时又有相同的activity A被启动在此任务栈中,则不会再重新创建新的实例,而是复用栈顶的activity A的实例。并通过onNewInstant()方法将intent对象传递到该实例。

    singleTask

    若某个人物栈中已经有activity A,若再一次有activity A加入这个任务栈,则会移除该任务栈 activity A上面的其他任务,复用activity A。

    singleInstance

    总是在新的任务中开启,并且这个新的任务中有且只有这一个实例,也就是说被该实例启动的其他activity会自动运行于另一个任务中。当再次启动该activity的实例时,会重用已存在的任务和实例。并且会调用这个实例的onNewIntent()方法,将Intent实例传递到该实例中。和singleTask相同,同一时刻在系统中只会存在一个这样的

    • 以singleInstance模式启动的Activity具有全局唯一性,即整个系统中只会存在一个
      这样的实例
    • 以singleInstance模式启动的Activity具有独占性,即它会独自占用一个任务,被他
      开启的任何activity都会运行在其他任务中(官方文档上的描述为,singleInstance模式的Activity不允许其他Activity和它共存在一个任务中)
    • 被singleInstance模式的Activity开启的其他activity,能够开启一个新任务,但不一定开启新的任务,也可能在已有的一个任务中开启

    相关的东东: taskAffinity

    可指定要启动的,launchmode为singleTask的activity的任务栈的地方。

    原文参考:https://blog.csdn.net/zhangjg_blog/article/details/10923643

    实战演练

    截图点击分享时,如果一直截图一直分享,由于启动模式是默认启动模式,这种场景下会在当前任务栈一直创建activity。那么此时只需设定当前的分享界面的启动模式为 singleTask,并且指定taskAffinity为我们应用的包名,即可。

    设计模式第一章 —— 6大原则

    • 单一职责原则(Single Responsibility Principle):
      There should never be more than one reason for a class to change.
      即就一个类而言,应该只专注于做一件事和仅有一个引起其变化的原因。
    • 里氏替换原则 (Liskov Substitution Principle):
      只要弗雷能够出现地地方子类就可以出现,而且替换成子类 也不会发生任何错误或异常。使用者根本不需要知道父类还是子类;但是反过来则不可以,有子类的地方,父类未必就适应。
    • 依赖倒置原则 (Dependence Inversion Principle):
      高层模块不应该依赖底层模块,两者都应该依赖抽象
      抽象不依赖细节
      细节应该依赖于抽象
    • 接口隔离原则 (Interface Segregation Principle):
      客户端不应该依赖它不需要的接口
      类间的依赖关系应该建立在最小的接口上
    • 迪米特法则 (Law of Demeter):
      每个软件单位对其他的单位都只有最少的了解,这些了解仅限于那些与本单位密切
      相关的软件单位
    • 开闭原则 (Open Closed Principle):
      一个软件应该对扩展开放,对修改关闭。

    相关文章

      网友评论

          本文标题:每周学习记录(一)

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