- Activity生命周期
onCreate(): 启动Activity ,页面还不可见,处于创建状态;
onStart(): 页面可见,但是还没有获取到焦点,不能进行交互;
onResume ():页面可以进行交互;
onPuse():覆盖当前的acitivty时,当前activity会进入到这个方法中,activity是可见的,但不能与用户交互;
onStop ():activity对用户是不可见的,在系统内存紧张的情况下,有可能会被系统进行回收。
onDestory():结束当前activity;
onRestart():按下home键之后,再次进入到当前activity的时候调用。调用顺序onPouse()->onStop()->onRestart()->onStart()->onResume();
- Activity的进程优先级
前台进程>可见进程>service进程>后台进程>空进程
- 四种启动模式
standard 默认(标准)模式: 创建activity的时候, 都会去创建 activity实例放到任务栈中;
singleTop 栈顶模式: 创建activity 的时候, 系统会去检查当前的任务栈中当前的activity的实例是否处于栈顶的,如果是, 那么就不新创建.不是的话,那么就会创建实例新的实列;
singleTask 任务栈模式:当前的任务栈中已经有这个activity的实例了, 那么就不会创建这个activity的实例,并且会将处于这个activity 之上的activity的实例给出栈
singleInstance 实例模式:创建新的栈,栈中只存放这一个实列
- 横竖屏切换回调的方法
AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性(有七中属性)
(1) "unspecified":默认值,系统来判断.不同的设备会有不同的显示方向.
(2) "landscape":横屏显示(宽比高要长)
(3) "portrait":竖屏显示(高比宽要长)
(4) "user":用户当前首选的方向
(5) "behind":和Activity下面的那个Activity的方向一致(在Activity堆栈中的)
(6) "sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
(7) "nosensor":忽略物理感应器,不会随着用户旋转设备而更改了("unspecified"设置除外)。