Activity相关总结
作者:互联网
什么是activity
安卓为用户提供的用于各种比如滑动操作的接口
activity的四种状态
running:
活动状态,处于activity栈顶
paused:
失去焦点或者被一个非全屏的activity遮住,或者一个透明的activity在栈顶。
stopped:
被全屏显示的activity覆盖
killed:
activity被回收掉
activity的生命周期
activity启动->onCreate()->onStart()->onResume()
onStart() : activity可见但是无法与用户进行交互
onResume() :前台可见,可交互
点击home键返回主界面(activity不可见)->onPause()->onStop()
onPause():activity处于停止状态,整个activity可见但是不能触摸
onStop():整个activity已经停止或者被完全覆盖
再次回到原activity时->onRestart()->onStart()->onResume()
onRestart():表示activity正在重新启动,activity由不可见变为可见状态时会调用onRestart()方法
退出当前activity时->onPause()->onStop()->onDestroy()
onDestroy():当前activity正在被销毁,可以做一些回收工作和一些资源的释放。
android的进程优先级
前台/可见/服务/后台/空
前台进程: 与用户正在进行交互的activity或者与前台进程绑定的service
可见进程: 用户可见但无法进行交互
服务进程: 后台开启的service服务
后台进程: 比如当前app,按home键就由前台进程变成了后台进程
空进程: 不属于上面任何一种就是空进程,出于缓存的目的保留它,可以随时被内存回收
android任务栈
activity启动模式
standard: (标准模式)每次启动都会重新创建一个activity的实例。然后将它加到任务栈中。而且不会考虑这个任务栈中之前是否有这个activity的实例。即便有也不会复用,只会重新创建一个activity的实例。
standard模式中,每创建一个activity都会走相应的生命周期方法。即onCreate()->onStart()->onResume()
singletop: (栈顶复用模式) 如果创建的activity已经有实例在任务栈的栈顶,就不会去创建新的activity,而是去复用任务栈顶的activity。
如果你想要创建的activity实例不是处于栈顶比如处于第二个位置,还是会去重新创建一个activity实例。
singletask: (栈内复用模式)类似于单例模式。检测整个任务栈中是否有当前启动activity的实例。如果有就将该activity实例至于栈顶,同时将该activity实例以上的所有activity都从任务栈中移除,销毁。同时调用onNewInstance()方法。没有就重新创建。
singleinstance: 整个任务系统中有且只有一个该activity的实例,并且该activity实例独享整个任务栈。用的比较少。
scheme跳转协议
android中的scheme是一种页面内跳转协议,通过自定义scheme协议,可以非常方便的跳转app中的各个页面。
通过scheme协议,服务器可以定制化告诉app跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
标签:总结,Activity,栈顶,实例,activity,进程,相关,跳转,页面 来源: https://www.cnblogs.com/cfdroid/p/16448435.html