0%

安卓基础

3.2 activity相关
一、activity生命周期
avtivity就是负责与用户交互的组件。
1),activity的四种状态,running(运行状态,处于栈顶)/paused()(被透明的activity覆盖或非全屏的activity覆盖,)/stopped()(被另外一个activity完全覆盖)/killed()(activity被回收了,保存的信息不存在了)。
2),activity生命周期。
activity启动:oncreate()(资源加载)–>onstart()(可见,不能交互)–>onresume()(开始与用户开始交互,也可以初始化一些资源)。
点击home键后回到主界面(activity不可见)–>onpause()–>onstop()。
再次回到原activity时,onrestart()(重新启动)–>onstart()–>onresume()。
退出当前activity时–>onpause()–>onstop()–>ondestroy()
3) 安卓进程优先级
前台进程/可见进程/服务进程/后台进程/空进程

二、安卓任务栈
一个task就是若干个activity的集合。
三、activity的启动模式
1),standard模式,每次都创建一个activity,标准模式,默认的启动模式
2),singleTop模式,栈顶复用,当activity在栈顶时,再启动该activity时,就不会再创建activity。
3),singleTask模式,栈内复用,若存在栈中则不创建activity,并将activity放于栈顶。
4),singleinstance模式,比较少用
四、 scheme跳转协议
页面跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉app跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过h5页面跳转页面等(推广使用)。

3.3 fragment相关
1),fragment为什么会称为”第五大”组件。
相比activity更节省内存,使用频率高,ui切换更加流畅,可以灵活地加载到activity中。当然它必须依附于activity。
2),fragmnet的加载方式
方式一:动态加载,
方式二:在布局文件中添加fragment
3),fragmentpageradapter和fragmnetstatepageradapter区别?
答:fragmentpageradapter适用于页面较少的情况,而fragmnetstatepageradapter适用于页面较多的情况,fragmnetstatepageradapter中的destroyItem方法中,有一行mCurTransaction.remove(fragment)。会释放fragment,释放内存。而在fragmentpageradapter类中,destroyItem方法中,代码:mCurTransaction.detach(Fragment(object))。detach并不是真正的回收,而是把fragment与activity分离,适合用于页面较少的情况。

3.4 fragment的生命周期
onAttach()-->onCreate()-->onCreateView()-->onViewCreated()-->Activity-onCreate()-->
3.5 
3.6 service有关
一、service应用场景,以及和Thread的区别
    service是四大组件之一,可以在后台处理任务,服务没有用户界面,service保活,服务启动后后会一直运行。不能处理耗时操作。
    service与thread区别
    thread:可以执行异步操作,可独立运行;service则依赖于activity。
    service有什么作用呢?service运行在主线程中,实际开发中,
二、 startservice
    这种方式启动服务后,即使activity销毁后,服务也会一直存活,除非手动关闭