问题记录

1.在recyclerview的viewholder中直接开启事务,然后add fragment,一共3个页面,只有第3个崩溃。

第一步,检查布局有没有空掉,检查view有没有空,都没有问题,断点显示ID在,但是报错没有这个view。

最后发现viewholder的itemview没有添加进recyclerview,导致事务在activity中找不到这个ID依赖。

所以,如果开启事务add或者hide replace进行操作时,需要检查view有没有加载。除了子事务管理器不可能出现,因为fragment加载后才进行获取子事务管理器。

2.影响性能的问题,帧动画导致性能损耗,recyclerview嵌套recyclerview导致性能问题,fragment加载,内存泄露。

3.多指事件通过recyclerview嵌套recyclerview实现,单指可以左右滑动,3指在dispathtouch中处理,在layout manager对象中可以设置can抬头方法。

4.帧动画导致内存吃紧,如果在xml中写动画集合,运行时动画直接加载图片会全部放到内存中,内存不会回收。

使用surfaceview加载帧动画,加载新图时会把原来的资源释放掉,主要在ondraw方法中实现。

5.fragment的add和replace,add加入内存后,fragment不会释放内存,多次叠加耗内存;replace会释放内存。直接退栈就显示了。

6.内存检查工具leankcary

7.fragment实现懒加载

8.try catch用在可能有问题,但是不影响功能使用的地方,throw用在出问题会影响整个应用的地方。

9.activity的启动封装,写一个静态的start方法,然后放个context和相关参数,优势在于,多人开发时,不知道里面内容,也不知道传参的时候变相默认了你的传参,升级版把参数序列化或泛型。

10.launchmode四种模式

一般activity使用默认。

涉及登录页面用single task,重新登录需替换所有页面。

single top用在栈顶唯一的情况,比如聊天界面。

single instance 比如launcher

11.contentprovider 即时通讯用来做加密数据库的连接方式,通过这个给集成他的IM人员使用数据库不会暴露出来。

未完待续

你可能感兴趣的:(问题记录)