java.lang.IllegalStateException commit already called
分析 Android 使用 Fragment 时报 java.lang.IllegalStateException commit already called 的原因,根源是把 Fragment 事务定义成全局变量重复 commit,解决办法是每次提交都获取新的局部事务再 commit。
分析 Android 使用 Fragment 时报 java.lang.IllegalStateException commit already called 的原因,根源是把 Fragment 事务定义成全局变量重复 commit,解决办法是每次提交都获取新的局部事务再 commit。
梳理 Java 内存管理与垃圾回收机制,依据《Java虚拟机规范》介绍堆、虚拟机栈、栈帧与方法区的职责划分,并说明 GC 由 JVM 低优先级线程自动执行,System.gc() 只能建议而无法强制立即回收。
用 Java 实现输入年月日计算该日期是当年第几天,思路是利用 switch 穿透从大月份向前累加天数,按 1、3、5、7、8、10、12 月 31 天并结合闰年判断 2 月取 28 或 29 天,附完整可运行代码。
讲解 Java 中 == 运算符与 equals 方法的区别,== 对基本类型比较值、对引用类型比较地址,未重写的 equals 等价于 ==,而 String 与包装类已重写为比较内容,并用字符串常量池示例说明两者结果差异。
通过十万次循环实测 Java 基本数据类型转 String 的三种方式,结论是 toString() 最快、String.valueOf() 与之接近、加空字符串拼接最慢,但差距都在毫秒级,实际开发中对用户几乎无感知。
总结 Android ListView 分割线的设置方法,用 divider 属性控制颜色、dividerHeight 控制高度,去掉分割线可在代码中 setDivider(null) 或在布局里把 divider 设为 @null,透明色方案仅是隐藏且仍占高度。
深入浅出 Retrofit2 系列首篇,介绍 Retrofit 对 okhttp 的封装关系,演示用 @GET 与 @Path 注解定义接口、构建 Retrofit 对象发起同步异步请求,并讲解 create() 背后的动态代理原理与 Gson 等七种转换器。
复盘 Android 编译报 Multiple dex files define okhttp3 WebSocketProtocol 的排查过程,根因是多个 library 重复依赖了 3.3.1 与 3.9.1 两个版本的 okhttp,去除重复依赖并统一版本号后 rebuild 即可解决。
深入浅出 Retrofit2 系列第二篇,讲解 POST 请求的多种用法,包括 @FormUrlEncoded 配合 @Field、@FieldMap 提交表单,@Body 提交 Json 与 RequestBody,并给出封装 GET、POST、文件上传下载的通用 ApiService 接口示例。
介绍 Windows 10 不重装系统的磁盘分区方法,用 Win+X 打开磁盘管理,先压缩卷腾出空白空间再新建逻辑分区,原有资料不会丢失,并给出 C 盘装系统、D 盘装软件、E 盘放资料、F 盘娱乐的四分区方案。