美文网首页
Activity四种启动模式的生命周期浅析

Activity四种启动模式的生命周期浅析

作者: 维一hw | 来源:发表于2017-07-28 14:56 被阅读0次

    自己的总结,请支持原创

    四种启动模式生命周期

    我们先来一张最简单的跳转的APP界面图

    image.png
    相信只要有一点安卓基础的人都会设计出来上述的界面,就不上代码了。
    Standard
    Activity01是标准模式,首次点击activity01按钮
    执行结果图如下:
    执行结果图1
    再点击一下activity01按钮 执行结果图2
    singleTop
    Activity02的模式是singleTop 清单文件中设置singleTop

    依次开启01>02>02生命周期如下:

    生命周期图

    01运行了onStop();

    生命周期图

       这种0202紧挨着复用 ,复用的时候运行了onNewIntent()和onResume()函数。
    依次开启02>01>02

    image.png image.png image.png
    01最后是运行了onStop()函数。
    singleTask 设置启动模式

    依次开启02>01>02

    image.png image.png image.png

       杀死02之上的01,再复用02,注意这种0202不是紧挨着复用,复用02依次调用的是onNewIntent(),onStart(),onResume()三个函数;而不是仅onNewIntent(),onResume()两个。
    依次开启01>02>02

    生命周期
    注意这种0202紧挨着复用情况下的复用会调用
    onNewIntent(),onResume()两个,而不是onNewIntent(),onStart(),onResume()三个。而01最后是运行了onStop()函数。
    singleInstance
      一个task里只有一个activity实例,所以开启同一个activity时是复用已经有的activity。
    依次开启01<02<02 image.png
    image.png
    生命周期
    • 注意这里复用的时候调用的是三个函数。onNewIntent(),onResume(),onStart()
      而01最后是运行了onStop()函数。
      2、各自的适用场景
        每一种启动模式有对应的应用场景,一定得清楚。
    • singleTop
      适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。
    • singleTask
      适合作为程序入口点。例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。之前打开过的页面,打开之前的页面就ok,不再新建。
    • singleTask:a界面购物,b界面确认订单,c界面付款,如果付款成功会跳到a,如果不付款则返回b,这时候重启a就会用到singleTask。
    • singleInstance
      适合需要与程序分离开的页面。例如闹铃提醒,将闹铃提醒与闹铃设置分离。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。

    相关文章

      网友评论

          本文标题:Activity四种启动模式的生命周期浅析

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