logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

关于安卓LiveData的一点可能造成内存泄露的细节问题

LiveData最重要的一个特性是具有生命周期感知能力,当Activity或者Fragment处于活跃状态时,观察者才能观察到LiveData的变化。如果这一点没理解好就容易犯难以察觉的错误。无论是LiveData还是观察者都要绑定一个生命周期拥有者,简单来说就是你的LiveData或者观察者要绑定一个Avtivity或者Fragment 。注意一点,当你的观察者是在Fragment时,千万不要让

在安卓中无法通过在for循环中setText()实现TextView的动态变化

有不少安卓开发的新手会想当然地以为在一个for循环中就可以实现TextView的动态变化。例如,下面就是错误的示例:错误的原因在于textView.setText()完成后线程并没有停下来,安卓必须在线程停下来后才会显示画面。所以正确的做法是新开启一条线程去动态更新TextView,下面是正确的代码:开启新的线程后还要在textView.setText()后面让线程暂停一会儿,只有线程暂停了安卓才

安卓的ContentResolver简介

ContentResolver是安卓中访问媒体的工具类,通过ContentResolver resolver = context.getContentResolver();可以获取这个类的对象,context是上下文对象,一般来说context就是activity。ContentResolver的使用像数据库的使用,有增删改查四个常用操作。比如下面这段代码就可以删除手机上一张照片:ContentR

安卓的LiveData存在的坑

LiveData是一种观察者模式,当LiveData中的数据发生变化时会立刻通知所有的观察者,然后执行观察者中的代码。正因为有这个机制所以会造成一些难以察觉的错误,例如,当我们需要A和B两个条件时才能计算C时,如果A是通过LiveData传递的,B是其它方式传递的,计算C的代码放在LiveData的观察者上,如果这个时候我们先传递A,那么会立刻触发LiveData中观察者的计算C的代码,但是这个时

到底了