![](../../asset/images/user/bgImg_default.jpeg)
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
LiveData最重要的一个特性是具有生命周期感知能力,当Activity或者Fragment处于活跃状态时,观察者才能观察到LiveData的变化。如果这一点没理解好就容易犯难以察觉的错误。无论是LiveData还是观察者都要绑定一个生命周期拥有者,简单来说就是你的LiveData或者观察者要绑定一个Avtivity或者Fragment 。注意一点,当你的观察者是在Fragment时,千万不要让
有不少安卓开发的新手会想当然地以为在一个for循环中就可以实现TextView的动态变化。例如,下面就是错误的示例:错误的原因在于textView.setText()完成后线程并没有停下来,安卓必须在线程停下来后才会显示画面。所以正确的做法是新开启一条线程去动态更新TextView,下面是正确的代码:开启新的线程后还要在textView.setText()后面让线程暂停一会儿,只有线程暂停了安卓才
ContentResolver是安卓中访问媒体的工具类,通过ContentResolver resolver = context.getContentResolver();可以获取这个类的对象,context是上下文对象,一般来说context就是activity。ContentResolver的使用像数据库的使用,有增删改查四个常用操作。比如下面这段代码就可以删除手机上一张照片:ContentR
LiveData是一种观察者模式,当LiveData中的数据发生变化时会立刻通知所有的观察者,然后执行观察者中的代码。正因为有这个机制所以会造成一些难以察觉的错误,例如,当我们需要A和B两个条件时才能计算C时,如果A是通过LiveData传递的,B是其它方式传递的,计算C的代码放在LiveData的观察者上,如果这个时候我们先传递A,那么会立刻触发LiveData中观察者的计算C的代码,但是这个时