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任务栈

image

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页面跳转页面等。

posted @ 2022-07-05 19:52  cfdroid  阅读(90)  评论(0编辑  收藏  举报