您当前的位置: 首页 >  ar

蓝不蓝编程

暂无认证

  • 4浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓四种activity启动模式介绍及应用场景说明(standard,singleTop,singleTask,singleInstance)

蓝不蓝编程 发布时间:2019-04-15 11:42:42 ,浏览量:4

简要介绍

安卓采用栈来管理activity,每启动一个新的activity,就将原先的activity压入栈中,当用户返回时,就将栈里的activity推出来. 一个app可以有多个栈. 当一个app出现多个栈时,在系统的最近任务里就会出现多个窗口,如下图:

四种activity启动模式
  1. standard 每次跳转到activity,都新创建activity.
  2. singleTop 当目标activity刚好在当前栈顶时,重用已有activity,不会调用onCreate方法,而是调用onNewIntent进行intent传递.
  3. singleTask 如果未指定android:taskAffinity,则检查当前栈里是否目标activity,如果有,则重用,并通过onNewIntent传递intent;同时将该activity上面的activity全部清理出栈. 如果指定了android:taskAffinity,则检查android:taskAffinity对应的栈是否已存在,如果不存在,则创建新的栈并在栈里创建该activity.如果已存在,则检查activity是否存在.后面步骤同不指定android:taskAffinity的情况.
  4. singleInstance 始终只有一个实例且自己独占一个栈,其他activity不会进入它的栈. 此模式应用较少.
应用场景
  1. singleTop: 当页面跳转会出现不停的跳转到自己当前activity时,可以选择singleTop.
  2. singleTask: 当页面跳转会出现循环时,应选择singleTask.如A->B->C->A,对于A则可以选择singleTask.避免栈过深,导致用户难以返回前面的界面.
  3. singleInstance用的较少,其他时候一般都默认用standard模式.

安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061 点击关注专栏,查看最新技术分享 更多技术总结好文,请关注:「程序园中猿」

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0415s