首页 > 程序开发 > 移动开发 > 其他 >

Activity启动模式

2017-04-05

Activity启动模式,写这些东西完全是为了给自己看,加深一下理解吧,不希望误导别人。。有问题的话就留言给我,我只是渣渣,慢慢进步吧。

今天讲讲四个安卓的启动模式

写这些东西完全是为了给自己看,加深一下理解吧,不希望误导别人。。有问题的话就留言给我,我只是渣渣,慢慢进步吧。

Standard SingleTop SingleTask SingleInstance

·先说说最基础的Standard,非常的反人类的一个启动模式。。一个Activity非常没有尊严,谁启动它,它就去谁的任务栈里。而这个任务栈也是非常朝三暮四,你栈里都有这个activity了,再启动,又会创建一个全新的实例放到任务栈里。呵呵。

·说完了不整齐的Standard再说说应运而生的SingleTop,Standard模式下无论任务栈里面是否存在该activity的实例,都会在Activity重新启动的时候再次创建一个对应的实例,所以SingleTop改善了一点点,如果某个ActivityB在任务栈的顶部Top,那么再次启动这个Acitivity的时候就不会再创建一个B的实例了。。只能说依旧反人类,单独的Activity还好,如果有两个activityA和B,任务栈从上至下是BA,那么如果想启动A活动任务栈就变成了ABA,创建了一个新的Activity的实例。所以它叫singleTop名不虚传。

·因为SingleTop也是一个很鸡肋没有卵用的模式,所以又一次(呵呵)应运而生了一个模式,SingleTask,这个模式就比上面那个好多了。栈的内部如果存在了某个Activity的实例,那么任务栈就不会在创建它的实例了。听起来很好,是我们想要的。但是还有一个问题,就是如果一个任务栈内的实例顺序为DCBA,这个时候我想调用B这个Activity,那么DC出栈,让B在栈顶。

·最后一种SingleInstance,这个是为每个有这种启动模式的Activity创建一个单独的任务栈,加强版的SingleTask,很人性化的,不呵呵它了,酒醒了。

相关文章
最新文章
热点推荐