Activity的生命周期方法:
onCreate: Activity被创建的时候调用
onStart Activity能被用户看见,但是没有获得焦点
onResume Activity获得焦点, 此时 Activity称为前台 Activity
onPause Activity失去焦点,但是依然可见
onStop Activity不可见, 此时 Activity称为后台Activity
onDestroy Activity被销毁
Activity启动模式:
在清单文件中对 activity进行配置, 设置 activity的属性 launchMode 一共有四种模式
标准模式, 默认就是标准模式,不用设置, activity一个一个被启动,一个一个被压入栈中
singleTop模式: 在这种模式下,如果栈顶就是该 activity,就无法再启动.如果栈顶不是,那么才会启动
singleTask模式: 如果该 activity没有启动过,会启动并跳转至该 acitivity,即该 activity会出现在栈顶
如果该 activity已经启动过,但是不在栈顶, 那么在此启动时,会返回至该 activity,即把
该activity上方的所有的activity全部销毁. 特点: 在任务栈中永远只有一个该
activity的实例
singleInstance模式: 该 activity启动时,会在一个新的任务栈中启动,并且只会启动一次,以后再次启动该
activity时,其实只是把该 activity所在的任务栈移动至前台
非单例模式的 activity 如果在 10个应用中启动,那么就会有 10个实例, 单例模式的 activity,内存中永远只有一个, 10个应用启动单利模式的activity, 都只是把该 activity所在的任务栈移动至前台
横竖屏:
正常来讲, 在用户切换横竖屏的时候,会重新触发生命周期方法
如果在 清单文件中 配置 activity的属性为:
android:configChanges="orientation|keyboardHidden|screenSize"
表明告诉系统忽略手机方向的变化,即用户在旋转手机的时候 生命周期方法不会被触发
Activity 返回数据时请求码和结果码的作用:
requestCode: 用来区分数据来自于哪一个 activity
resultCode: 用来区分返回的数据是什么类型的