最近重构项目,把原有的网络请求改为retrofit+rxjava的。但是遇到了一个不大不小的坑。(ps:后台的锅~~~)
一般情况下我们的json是这样的:
|
|
写个基础的Basebean通过继承的方式来处理,把返回码、返回信息和数据分开,像下面这样:
静态内部类一般是声明为static的类,它又被叫做嵌套类。
静态内部类对象和其外围的类对象之间没有联系。然而普通的内部类对象隐式地保存了一个引用,指向创建它的外围类对象。
静态内部类意味着:
StringBuffer和StringBuilder作用都是一样的拼接字符。
区别在于StringBuffer是线程安全的,而StringBuilder是非线程安全的。
什么叫线程安全:
非线程安全是指多线程操作同一个对象可能会出现问题。而线程安全则是多线程操作同一个对象不会有问题。
从Android 6.0(API级别23)开始,用户在应用运行时(而不是在安装应用时)向应用授予权限。 此方法简化了应用安装过程,因为用户在安装或更新应用时不需要授予权限。 它还给用户更多的控制应用程序的功能; 例如,用户可以选择给摄像机应用访问摄像机而不是设备位置。 用户可以随时通过转到应用的设置屏幕撤消权限。
Android属性动画主要分为两种:
ValueAnimator和ObjectAnimator两种,总体来说区别并不大。
ObjectAnimator是继承的ValueAnimator。就相当于对ValueAnimator的一种封装,操作更方便点。
所以先来了解下ValueAnimator:
我们要使用一个东西 当然避免不了要初始化一个变量:
ValueAnimator有很多的静态方法来获取ValueAnimator。
static ValueAnimator ofArgb(int… values)
Constructs and returns a ValueAnimator that animates between color values.
static ValueAnimator ofFloat(float… values)
Constructs and returns a ValueAnimator that animates between float values.
static ValueAnimator ofInt(int… values)
Constructs and returns a ValueAnimator that animates between int values.
static ValueAnimator ofObject(TypeEvaluator evaluator, Object… values)
Constructs and returns a ValueAnimator that animates between Object values.
static ValueAnimator ofPropertyValuesHolder(PropertyValuesHolder… values)
Constructs and returns a ValueAnimator that animates between the values specified in the PropertyValuesHolder objects.