星空网 > 软件开发 > 操作系统

我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解

之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解。最近实战了下,也对这四种启动模式有了比较清晰的概念。
首先说下什么是Activity,按照我的理解,我们在手机上看到的每一个页面都是一个Activity,包括系统的桌面,也是一个Activity。
要启动一个Activity有四种模式:standard(标准启动模式)、singleTop、singleTask、singleInstance。
 
注: Aty1_1和Aty2_1为两个不同的Activity,Aty1_1和Aty1_2为同一个Activity中的不同实例。
1. standard
    不同的Activity在同一个栈中,
    每次创建新实例的时候,新实例便会堆放到栈顶。
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解images/loading.gif' data-original="http://note.youdao.com/yws/api/group/9802571/noteresource/1F5427C59AB4438B8CCD85F8D717762B/version/278?method=get-resource" width="300" height="157" data-media-type="image" />
      当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。
 
2. singleTop
    不同的Activity在同一个栈中。   
    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    ② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,会产生一个新的Aty1实例到栈顶。
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。
    
3. singleTask
    不同的Activity在同一个栈中。
    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。
  我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    ② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,页面会返回到任务栈中存在的Aty1的实例,并将Aty1上面所有的实例移出栈。
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。
 
4. singleInstance
    不同的Activity 处于不同栈中
    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。
   我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    ② 如果此时Aty2的实例还未被创建,则创建的Aty2的实例时会存放到一个新的任务栈中。
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
    ③ 如果此时Aty1的实例已存在且我们在Aty2的页面中创建新的Aty1实例时,则不会创建新的Aty1实例,而是页面跳转到原来任务栈中存在的Aty1的实例,但存放Aty2实例的任务栈仍然存在
    我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
      
    当点返回键的时候,便会依次销毁相应的任务栈,直至任务栈数为空则退回到系统桌面。
 
以上是我对安卓四种Activity启动模式的理解,如果有不对的地方还望指正。



原标题:我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊零售分销:https://www.ikjzd.com/w/2282
亚马逊Amazon Posts:https://www.ikjzd.com/w/2283
IP Accelerator:https://www.ikjzd.com/w/2284
AllPay:https://www.ikjzd.com/w/2285
ideal:https://www.ikjzd.com/w/2286
Uitox:https://www.ikjzd.com/w/2287
深圳西乡三月三北帝庙会的千岁盆菜多少钱:https://www.vstour.cn/a/365180.html
TikTok SEO:TikTok会取代谷歌吗?:https://www.kjdsnews.com/a/1836538.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流