Activity详解
1.activity生命周期
2.android任务栈
3.activity启动模式
4.scheme跳转协议
一.activity生命周期
什么是Activity,日常应用中,android是用户交互的接口,提供了界面,让用户进行点击,各种滑动操作。
1.Activity的4种状态
2.activity生命周期分析
3.android进程优先级
1.Activity的4种状态
1.running(处于活动状态,点击屏幕有响应,栈顶状态,可以点击)
2.paused(失去焦点,或者被一个非全屏的,或者透明的Activity放在栈顶,Activity只是失去了与用户的交互能力,并没有被销毁,所有信息和成员变量都存在)
3.stopped(被完全覆盖,内存不紧张情况下所有信息都存在)
4.killed状态
2.activity生命周期分析
1.Activity启动->onCreate()->onStart()->onResume()
创建Activity时重写onCreate:setContentView设置布局资源,图片预加载
onStart:Activity已经处于用户可见的状态,用户无法触摸,还不能给用于进行交互(看见无法触摸)
onResume:被调用时表明Activity可见了,用户可以触摸、滑动点击等等
2.点击Home键返回主界面(Activity不可见)->onPause()->onStop()
onPause:该方法被回调时,表明Activity处于停止状态(可见不可触摸,当前Activity被退至后台)
onStop:Activity被完全停止,或者完全被覆盖,完全不可见,处于后台运行(手机内存吃紧时可能被回收掉)
3.当我们再次回到原Activity时->onReStart()->onStart()->onResume()
onRestart:表示Activity正在重新启动,正在由不可见状态变成可见状态
onStart:可见
onResume:可操作,触摸
4.退出当前Activity时->onPause->onStop->onDestroy
onDestroy:表明当前Activity正在被销毁,做一个回收工作,资源释放
3.android进程优先级
前台、可见、服务、后台、空
前台进程;1.处于与用户交互的Activity,2.前台Activity绑定的Service
可见进程:1.Activity属于可见但不可点击
服务进程:1.开启了一个服务
后台进程:1.Activity按了home键,后台进程不会立马被kill掉
空进程: 1.进程不属于前四种,没有活跃的组件,为了缓存而存在的组件
二.android任务栈
栈:后进先出
三.启动模式:
1.standard(每次重新创建一个新的Activity实例,添加到任务栈中) 都会走相应的生命周期方法(消耗资源,消耗内存)
2.singleTop(栈顶复用模式):判断任务栈中栈顶是否有将要创建的Activity,走onNewIntent方法
3.singleTask(栈内复用模式,单例模式):整个任务栈中是否有对应的Activity,
onNewIntent会走方法,会将该Activity栈以上的Activity全部移除
4.singleInstance模式:单例,整个应用只有一个
四.scheme跳转协议
1.android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;
2.通过scheme协议,
1.服务器可以定制化告诉App跳转哪个页面(也可跳转到其他app的页面)
2.可以通过通知栏消息定制化跳转页面
3.可以通过H5页面跳转页面等(向H5注册一个UrlScheme,用于在浏览器中启动)