Android 开发问题汇总
本文主要记录 Android
开发过程中遇到的比较 神(cao)奇(dan)的问题, 一些简单的问题却难以定位,查找问题时耽误很多时间,开发过程中应该从开始就规避这类问题的发生。
Bundle 传递问题
为了保证从外面传递过来的数据能够被完整的传递下去,通常我们会直接将原先的 bundle
直接传递下去,例如:
1 | public class DetailPagerAdapter extends FragmentPagerAdapter { |
这样会造成的问题是多个对象同时持有了 bundle
的引用,如上面例子中 adapter
的宿主,DetailIndexFragment
和 DetailGraphicFragment
都会持有 bundle
的引用,这会让数据变的难以管理,bundle
里面的数据会莫名其妙的发生改变,而我们难以定位是谁改变了他,好的做法是,创建一个全新的 bundle
并持有当前状态下的数据。
1 | public class DetailPagerAdapter extends FragmentPagerAdapter { |
getter 方法中创建对象
案例:在 Activity
的 onResume()
方法中调用了 getViewModel()
获取到 ViewModel
进行一些操作,但是没想到 getter
方法中没做判断每次都会返回新的对象,造成了大量的内存占用。
在 getter
方法中不应该进行创建对象的操作,如果有要加入仅创建一次的判断,因为当别人和自己在使用该方法可能会直接调用,因为对使用者来说,这只是一个获取操作,就会频繁的使用它,并不知道内部返回了一个全新的对象。
1 | private ViewModel mViewModel; |
目前维护的几个项目,求 ✨✨✨✨
- SocialSdk 登录分享功能原生接入
- LightAdapter 轻量级适配器
- ImageEditor 图片处理,裁剪旋转,贴纸涂鸦,滤镜等
- WeexCube Weex 容器方案
- Kotlin 学习系列总结,共计 22 篇
- 本文链接: http://cdevlab.top/article/39cb08bb/
- 版权声明: 版权所有,转载请注明出处!
------ 本文结束 🎉🎉 谢谢观看 ------