- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 FragmentStateAdapter 导致内存泄露的问题记录
当时在Framgent 初始化时候传入了Activity 结果Leakcanary一直提示Framgent对象内存泄露。但是退出Activity时垃圾就被清理了。这里看了下源码里面使用了Lifecycle。在创建FragmentStateAdapter 一定要传递使用的Activity 还是 Fragment。在开发过程中使用FragmentStateAdapter + ViewPager2来实现了页面切换。
2025-09-04 11:38:06
167
原创 Android 使用UDP广播无法接受到消息
val broadcastAddress = InetAddress.getByName("255.255.255.255") // 或指定子网的广播地址。不要使用这种方式来初始化!Log.e(TAG, "搜索设备错误:${e.message}")func.invoke("发生异常${e.message}", false)Log.e(TAG, "搜索设备错误:${e.message}")
2024-12-09 14:43:17
649
原创 如何从InputStream获取完整长度的字节数组
上面是正常从InputStream读取数据指定一个1024可能不太符合某些业务情况,特别是从网络获取到数据时。每次写IO的时候都忘记,写个笔记防止忘记。如何准确指定长度捏?
2023-08-16 15:34:20
1279
1
原创 Android项目没有BuildConfig解决方案
新建了一个项目发现无论怎么编译清理还是清除缓存都没有 BuildConfig 这个 文件。只需要在gradle中加入。然后在Build一下即可。
2023-07-11 09:47:23
2102
原创 Android 使用PorterDuff.Mode.XOR自定义透明遮罩
在业务开发中很多场景都会遇到遮罩。今天使用 PorterDuffXfermode 的XOR模式来绘制一个中间透明的遮罩。先上一张图看看效果分析一下:1:后面的背景是黑色2:中间还有一个不规则的透明部分 使中间透明就需要使用到 PorterDuff.Mode.XOR3:还有一个边框以上如何实现的呢?下面上代码一:首先继承Viewclass MaskView @JvmOverloads constructor( context: Context, a...
2022-05-30 14:00:11
1393
原创 Room数据库添加字段遇到的问题记录
Android 开发项目使用到了Room数据库。在业务不断完善的时候数据库都会发生变化。今天在给表增加列的时候遇到了一个问题。Migration didn't properly handle xxx我升级表的目的是为了给表增加一个布尔值以下是出错的代码: 从版本1迁移到版本2在test_records表里面增加一列 is_tourists_dataval MIGRATION_1_2 = object : Migration(1, 2) { override fun mi..
2022-05-09 16:36:20
1634
原创 Android 状态栏常规操作(状态栏显示,状态栏颜色,沉浸式状态栏)
在app开发中,通常都会修改状态栏样式,当你在搜索引擎上一顿操作后搜到的代码都是过时的。当你把Android SDK 兼容版本调整到30,你会发现处理状态栏的部分代码开始划上横线(弃用)问:新版API变成什么了?答:WindowInsetsControllerCompat问:为啥要改?答:当你打开WindowInsetsControllerCompat的构造方法你就会发现该api处理了不同版本的适配,不同于以前直接操作Window添加各种Flag来处理,看着都乱七八糟的pub
2021-08-03 15:35:13
5940
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅