Android框架式编程之LiveData】的更多相关文章

一.LiveData 介绍 LiveData是 Google 推荐的 Android 架构组件之一,是一个基于观察者模式的数据容器,但与一般的被观察者不同的是,它是有生命周期感知功能,解决了Android开发者需要去手动处理生命周期的痛点. 它具备如下特点: ① 数据可以被观察者订阅. ② 能够感知组件(Fragment.Activity.Service)的生命周期. ③ 只有当组件处于活跃状态(STARTED或RESUMED)时才会通知观察者数据发生了变化. 官方对其优点说明概括如下: ① U…
1. 当前Android开发面临的问题 Android开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在:而一个典型的Android应用通常由多个应用组件构成,包括不同数量的Activity.Fragment.Service.Content Provider.Broadcast Receiver等. 此外,用户在移动设备上常常会在多个App之间切换.例如,如果用户想要在一个社交应用上分享一张图片,那么一般的流程是首先该社交应用可能会使用Intent的方式通过A…
配置 compile 'com.jakewharton:butterknife:(insert latest version)' annotationProcessor 'com.jakewharton:butterknife-compiler:(insert latest version)' 使用 Android 开发过程中,我们需要写大量的findViewById()和setonclicktListener()等事件, 那么现在有一个框架可以很好的解决这个问题 ---- BufferKnif…
Room是Google官方出品的ORM(Object-relational mapping) 框架.当前我们也知道当前还有很多的ORM框架,例如GreenDao.OrmLite.Litepal等.目前并没有深入了解这些框架,没办法比较各个框架的优缺点,但是相对而言,Room比较官方出品,且能够更好的与LiveData及RxJava等框架结合使用,还是推荐各位学习和使用Room框架作为数据存储的基础框架的.官方文档: https://developer.android.com/training/d…
Lifecycle官方文档地址:https://developer.android.com/topic/libraries/architecture/lifecycle. 一.为什么要使用Lifecycle? Activity 和 Fragment 是有声明周期的,开发时我们的很多操作需要写在声明周期的方法中,比如,下载.文件操作等.这样很多情况下会导致,我们在 Activity中 的声明周期方法中写越来越多的代码,从而使得 Activity 或者 Fragment 越来越臃肿,代码维护越来越困…
Hello World 源码: import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.support.v7.app.AppCompatActivity; import android.os.Bu…
一.Retrofit 简介 Retrofit 官网地址: https://github.com/square/retrofit Retrofit(即Retrofit,目前最新版本为2.6.0版本),是目前非常流行的网络请求框架,底层是基于okHttp实现的.准确来说Retrofit是对okHttp的进一步封装,它功能强大,支持同步和异步,支持多种数据的解析方式(默认为Gson),支持RxJava. Retrofit 最大的优势就是简洁易用,它通过注解配置网络请求的参数,采用大量的设计模式来简化我…
EasyPermission库是一个谷歌官方提供的简化基本的系统权限逻辑的库,可用于在Android M或者更高版本上. 官方项目地址:https://github.com/googlesamples/easypermissions 一.EasyPermission配置依赖 在需要使用此库的module的build.gradle中添加以下代码: dependencies { // For developers using AndroidX in their applications    imp…
一.ViewModel介绍 ViewModel类是被设计用来以可感知生命周期的方式存储和管理 UI 相关数据.ViewModel中数据会一直存活即使 Activity Configuration发生变化. ViewModel可以解决以下痛点. 1. 数据持久化 在屏幕旋转的时候会经历 Activity 的销毁与重新创建,这里就涉及到数据保存的问题,显然重新请求或加载数据是不友好的.在 ViewModel 出现之前我们可以用 Activity 的 onSaveInstanceState() 机制保…
一.EventBus 简介 EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus. 它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便. 1. EventBus的三个角色 Event:事件,它可以是任意类型,EventBus会根据事件类型进行全局的通知. Subscriber:事件订阅者,在EventBus 3.0之前我们必须定义以onEvent开头的那几个…