工作总结------(1) Activity启动模式 singleTask的妙用

来源:互联网 发布:原生js获取标签 编辑:程序博客网 时间:2024/05/10 02:50

activity的启动模式,相信大家都很是了解的,毕竟,在学习android不久都会去了解到,一些面试题上。activity的启动模式几乎都是必问题目。

但是,我们一般都只能笼统的按照正规的答案去回答。在某些模式具体的应用上,可能没有什么好的想法。

那么,今天。来推荐一个singleTask的使用场景啦。

使用场景

singleTask:

    如果某个Activity是singleTask模式,那么Task栈中将会只有一个该Activity的实例。    此时D通过Intent跳转到B,则栈的情况变成了:A B。而C和D被弹出销毁了,也就是说位于B之上的实例都被销毁了。

看到这段描述有想到什么呢?

比如说,去注册的页面。

一般情况下,主页面(A)-> 登录页面(B)-> 注册页面(C) ->注册页面(D) ->注册成功页面(E)

是以上几个流程。

那么一般注册成功之后,我们会返回到登录页面,进行一次自动登录,回到主界面。

这种情况下,我们需要关闭掉c,d,e页面。

那么正常情况我们是怎么处理呢?

一般来说,我们可能会使用startActivityForResult(),根据返回code来关闭页面。

这样做可以达到我们想要的效果,但是,在每个类都需要重写一个方法,那是不是显得麻烦呢?

那么。这时候,就可以考虑下SingleTask模式了。

此时,只要将B(登录页面)设置成singleTask模式。

注册成功之后,直接startActivity()跳转到登录界面
即 E->B

那么,在B上面的C ,D ,E界面都会被自动关闭掉。无需做多余的操作。

这样,是不是显得更简单呢?

相应的业务场景,可能在支付界面,一些返回需要关闭几个页面的需求上,都是可以尝试使用下的。

而且,下次面试的时候,在回答activity的启动模式的时候,也可以说一下singleTask的使用场景。

相信也是一个加分项吧~~

0 0
原创粉丝点击