什么是activity?
答:Activity是Android一个非常重要的用户接口,是可见的,用户和应用程序之间进行交互的接口。在每个Activity中都可以放很多控件,所以也可以把Activity看作控件的容器。
一.activity生命周期
1.activity的4种状态
running放在栈顶
paused失去焦点,成员变量都还在
stopped当activity被覆盖的时候
killed 此时的activity已经被销毁,所有变量都不存在
2.生命周期
activity启动
1.oncreate()是在activity创建的时候调用,初始化的时候调用
2.onstart()表明activity正在启动状态,这时的activity可以看见但是不能触摸
3.onresume()此时的activity可见,并且可以和用户交互
点击home键回到主见面
1.onpause()此时activity处于停滞状态,可见但不可触摸
2.onstop()当activity完全不可见,也是不可交互的
当我们再次回到原activity的时候
1.onrestart()表示activity正在重新启用,
2.onstart()
3.onresume()
退出当前activity
1.onpause()
2.onstop()
3.ondestory()activity完全销毁,此时可以做一些关闭的操作
二.android进程优先级
1.前台:例如和用户正在交互的activity或者在前台activity绑定的service
2.可见 :activity处于可见但是不能点击的时候就是可见进程
3.服务:在后台开启的服务进程就是服务进程
4.后台:比如前台activity按了home键,此时的activity看不见也不可交互,但是未被系统所回收,及为后台进程
5.空:除上述四种进程外就是空进程,可以随时被系统所回收
三.android启动模式
1.standard:每次启动都会重新创建activity实例,并放在栈中,并走相应的生命周期,消耗内存资源,
2.singletop:栈顶复用,当创建activity的时候会先查看当前栈顶是否已经存在当前activity实例,如果存在就复用,如果不存在即重新创建
3.singletask:栈内复用,相当于栈内的单例模式,当创建activity先检查栈内是否存在此activity,如果存在,他会把当前activity上面的其他activity移除,销毁,走onnewinstant方法
4.singleinstance:独享任务栈模式
四.scheme跳转协议
android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面,通过scheme协议,服务器可以定制化告诉app跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等.
简单来说,这个scheme协议其实就是给个uri地址,把参数以及要打开的activity的名字封装在里面,在客户端中解析这个uri地址,获取到activity的名字及参数,通过这两个顺利打开指定的activity.