11、横竖屏切换+12、任务和栈+13、activity启动模式

来源:互联网 发布:网络出租车管理办法 编辑:程序博客网 时间:2024/06/05 00:50

11、横竖屏切换(横竖屏方向改变带来的问题)

问题:当横竖屏切换时,会导致生命周期重置,这在游戏设计中是不能被理解的,所以针对这种问题我们可以有2种方法解决:
1、直接在清单文件中指定屏幕的方向

android:screenOrientation=”landscape” | portrait

这里写图片描述

2、或在清单文件通过配置内容随着方向改变而改变,但是生命周期方法不会再重新调用

android:configChanges=”keyboardHidden|screenSize|orientation”

这里写图片描述

12、任务和栈

adb shell dumpsys activity 使用命令查看activity启动任务栈的详细信息
* Task – 任务

一个运用程序里面可以包含多个界面,每一个界面都是来设计显示界面,并且与用户进行交互.没一个界面都是一个任务.


  • Stack – 栈

一种数据格式,遵循后进先出. 队列(queue)也是

13、activity启动模式

设计activity的启动模式有2中方法:

第一种是在清单文件设计:
这里写图片描述

第2中方法是在启动界面是设计:

启动模式的分类(四钟):

  • standard - 默认的启动模式

启动多少次界面,就会有多少个实例被压到栈中。

  • singleTop - 单一顶部模式

只要当前启动的activity,实例位于栈顶,那么将不会继续创建该界面的实例,只要不是位于栈顶,那么与默认的启动模式一样。

场景: 短信编写界面,用于去回避一些奇怪的现象。

  • singleTask - 单一任务栈

如果启动的任务在栈中已经存在实例,那么将复用以前的实例对象,并且把该实例与栈顶之间的其他实例全部移除掉,让该实例位于栈顶。

应用场景: 浏览器的界面 ,如果一个应用启动非常的消耗内存开销,那么可以做成这个启动模式。

  • singleInstance - 全局唯一模式 (单例模式)

特点: 如果哪一个界面,它的启动模式是singleInstance,那么它的实例将会存放到一个独立的栈中,并且这个栈有且只有它自己一个实例 。以后要想显示它,无非就是做栈的切换工作就可以了。

应用场景: 如果一个界面在单位时间内,创建的频率非常大,非常高。 可以设计成singleInstance模式。 拨号界面、紧急呼叫界面

0 0
原创粉丝点击