- 什么是Activity?
android 给用户提供的交互接口,让用户通过界面进行查看、点击、滑动等一系列活动。
- Activity的4种状态
running 代表的是activity活动状态(用户正在操作的时候:正在点击),在栈顶的一种状态。
paused 失去焦点的时候,表示用户不可交互的状态(比如:透明的activity),但是成员变量和其他数据状态者都还在(内存信息),前提是内存不紧张的时候。
stopped 是被第二个activity 覆盖掉了,不可见的,但是它的成员变量内存信息还在,前提是内存不紧张的时候。
killed 表示activity已经被消毁掉了,成员变量和内存信息都已被回收。
- Activity生命周期
Activity 启动 —> onCreate() 创建 可以做一些初始化和布局加载操作
—> onStart() 启动 可见了但还能被用户操作 —> onResume() 可以和用户交互
点击home键回到主界面(Activity不可见) —> onPouse() 表示activity 停止状态 是可见的不能被触摸的状态。 —> onStop() 表示activity 已经停止,并且是不可见的状态,在后台运行。如果,当前内存紧张时,有可能会回收掉。
当我们再次回到原Activity时 —> onRestart() 表示activity 正在重新启动,是由不可见到可见状态的转变,使用户打开一个新的activity 覆盖当前的activity 会停止回走上面的周期 —> onStart() —>onResume()
退出当前activity时 —>onPouse() —>onStop() —>onDestroy() 表示activity正在消毁,是生命周期的最后一个方法,里面适合做一些资源释放和回收。
- Android 进程优先级
前台 >可见 > 服务 > 后台 > 空
前台 :(1) 和用户进行交互时候 (2)前台进程绑定的servers
可见:可见但用户不能点击的时候
服务:开启一个服务
后台:当点击home键时activity没有被消毁还在后台运行的时候
空:是进程优先级最低的进程,不属于前面四个的进程就是空进程,一般用来保存缓存的,系统可以随时回收它。
- Android任务栈
android当中是使用任务栈来存储activity的,他具有先进后出的特性。
一个activity可以有多个任务栈,当然多个activity也可以共享一个任务栈。
- Activity启动模式
1.standard 是标准启动模式 每次启动activity的时候都会重新创建activity。
2.singletop 是栈顶复用模式 如果创建的activity是顶栈的activity的话 他不会重新创建activity,否则还会重新创建activity的
3.singletask 是栈内复用模式 他会查找栈里所有的activity,判断是否有相同的activity实例,如果有就把他移到栈顶,并且会把这个activity上的activity实例进行移除,如果没有就重新创建一个。
4.singleinstance 是栈内单例模式 每个任务栈中只有一个activity实例。
- scheme跳转协议
android 中的scheme是一种页面跳转协议,是一种非常好的实现的机制,通过定义自己的scheme协议,可以非常方便的跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉app跳转哪个页面,可以通过通知栏发送消息跳转页面,可以跳转到h5页面等。
他有四种就用场景:
1.服务器下发跳转路径,客户端根据服务器下发的跳转路径跳转到相应的页面;
2.h5页面点击锚点,根据锚点具体跳转路径app端跳转具体页面;
3.app端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转到相应页面;
4.两个不同的app也可以通过跳转路径进行跳转到别一个app界面;