客户端基础知识必备|青训营笔记

97 阅读2分钟

这是我参与《第四届青训营》笔记创作活动的第2天,今天的笔记是客户端必备知识。在录播课上,讲师以三个视角和三个问题引入话题。讲述了Android基础组件包括四样,分别为:界面组件、服务组件、广播数据组件。第一,Activity生命周期大致为启动推出场景、部分遮挡、完全遮挡、配置变更和后台回收。另外就是记得英文所对中文翻译,比如frontscale(改变字体大小)、local(改变语言)等。讲师还列举了接电话crash问题,解决方法是添加判空逻辑,页面重建时在onrestoreinstancestate()进行数据恢复。launchmode为standard(默认模式,允许activity重复)、singletop(栈顶复用,不允许activity连续重复)、singletask(栈内复用,不允许栈内activity重复)、singleinstance(全局复用,系统全局不允许activity重复)。另外,将首页launchmode设为singletask可以解决多个首页问题。第二,fragment具有解决屏幕尺寸碎片化问题和轻量级页面容器的特点,它的基本用法为:创建其布局文件;创建其子类,加载布局文件;activity加载fragment(静态加载、动态加载)。 fragment(1)与activity(2)交互: (1)获取(2)中组件:getactivity0.findviewbyid(R.ID.xxx)(组件获取) (2)获取(1)中组件:getfragmentmanger.findfragmentbyid(R.iD.fragment-xxx) 数据传递: (2)给(1)传输数据:setarguments(Bundle bundle)(组件获取) (1)给(2) 传输数据:通过对象直接传递(方法调用/接口调用);异步方式:viewmode/handler/broadcast/eventbus等。 第三,service基本用法(注册、创建、加载); service与activity通信:定义binder子类,实现getservice(方法)、返回service对象;实现service类onbind()方法,返回binder对象;实例化serviceconnection对象,实现其1方法,再获取实例;activity调用bindservice()方法,传递上一步serviceconnection()方法,使流程跑起来;activity可以通过调用service实例中的方法直接进行通信。