美文网首页
Android知识回顾

Android知识回顾

作者: wanTag | 来源:发表于2019-03-29 13:34 被阅读0次
    Android的启动模式
    • standard:标准模式
    • singleTop:栈顶复用模式
    • singleTask:栈内复用模式
    • singleInstance:单实例模式
    启动Activity时并指定启动模式有两种方式
    • 一种是在清单文件中指明
    • 另一种则是在Intent中添加FLAG标志位
      默认是标准模式
    standard启动模式

    系统在启动 Activity 的任务中创建 Activity 的新实例并向其传送 Intent。Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例。

        //standard模式启动A
        public void standardStartA(View view) {
            startActivity(new Intent(this, ActivityA.class));
        }
    

    创建Activity然后与任务关联

    singleTop启动模式
    • 如果当前任务的顶部已存在 Activity 的一个实例,则系统会通过调用该实例的 onNewIntent() 方法向其传送 Intent,而不是创建 Activity 的新实例.
    • Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例(但前提是位于返回栈顶部的 Activity 并不是 Activity 的现有实例)。

    例:

    • (1) ActivityA以singleTop模式启动ActivityB,然后ActivityB再以singleTop模式启动ActivityB。
    • (2) 任务栈中有两个Activity,分别是ActivityB和ActivityA;下面从ActivityB再次以singleTop模式启动ActivityB。
    • (3) 任务栈中依旧是ActivityB和ActivityA,这就是singleTop模式的作用,栈顶复用,因为ActivityB启动ActivityB时,ActivityB已经位于栈顶,那么就会直接使用ActivityB,而不是直接创建。
    singleTask启动模式
    • 系统创建新任务并实例化位于新任务底部的 Activity。但是,如果该 Activity 的一个实例已存在于一个单独的任务中,则系统会通过调用现有实例的 onNewIntent() 方法向其传送 Intent,而不是创建新实例
    • 一次只能存在 Activity 的一个实例
    • 尽管 Activity 在新任务中启动,但是用户按“返回”按钮仍会返回到前一个 Activity。
    singleInstance启动模式
    • 与 “singleTask” 相同,只是系统不会将任何其他 Activity 启动到包含实例的任务中,该 Activity 始终是其任务唯一仅有的成员;
    • Activity 启动的任何 Activity 均在单独的任务中打开

    相关文章

      网友评论

          本文标题:Android知识回顾

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