Ant 实现流程控制、遍历
if 逻辑判断
<if> 标签没有任何的标签内属性,在 <if> 标签下紧跟着嵌套一个条件判断任务,如果条件判断为真,则直接处理 <then> 标签的内容;如果条件为假,则跳转到 <elseif> 标签中,接下判断该标签内的条件判断并根据结果选择去处理接下来的 <then> 内容或者再跳转出来处理 <else> 标签的内容。
1 | <property name="what.is.your.name" value="mobile.qq"/> |
<if> 标签没有任何的标签内属性,在 <if> 标签下紧跟着嵌套一个条件判断任务,如果条件判断为真,则直接处理 <then> 标签的内容;如果条件为假,则跳转到 <elseif> 标签中,接下判断该标签内的条件判断并根据结果选择去处理接下来的 <then> 内容或者再跳转出来处理 <else> 标签的内容。
1 | <property name="what.is.your.name" value="mobile.qq"/> |
需要预先下载 jar 包
javax.mail-api.jar | mail task with MIME encoding
https://javaee.github.io/javamail/
否则会报错
要点:如果不是必须, 用系统控件
线程切换需要注意的地方
RxJava 内置的线程调度器的确可以让我们的线程切换得心应手,但其中也有些需要注意的地方。
subscribeOn() 指定的就是发射事件的线程,observerOn() 指定的就是订阅者接收事件的线程。subscribeOn() 只有第一次的有效,其余的会被忽略。observerOn(),下游的线程就会切换一次。RxJava 中,已经内置了很多线程选项供我们选择,例如有:
Schedulers.io() 代表io操作的线程, 通常用于网络,读写文件等 IO 密集型的操作;
Schedulers.computation() 代表CPU计算密集型的操作, 例如需要大量计算的操作;
Schedulers.newThread() 代表一个常规的新线程;
先总结下自定义 View 的步骤:
我把 3 用[]标出了,所以说 3 不一定是必须的,当然了大部分情况下还是需要重写的。
1 | <?xml version="1.0" encoding="utf-8"?> |
format 是值该属性的取值类型:
string, color, demension, integer, enum, reference, float,boolean, fraction, flag;不清楚的可以 google
Configuration
ViewConfiguration
提供了一些自定义控件用到的标准常量, 比如UI超时, 尺寸大小, 滑动距离, 敏感度等等

GestureDetector
简化Touch操作
VelocityTracker
用于跟踪触摸屏事件(比如: Flingling 以及其他手势事件)的速率
1 | mVelocityTracker = VelocityTracker.obtain(); |
mTextView.scrollTo(0, 25)
1 | ViewDragHelper mViewDragHelper = ViewDragHelper.create(context, 1.0f, new ViewDragHelper.Callback(){ |
1 | int specMode = MeasureSpec.getMode(measureSpec); |



最终结果不会影响 UI, 例如将数据缓存到数据库中。
Android 四大组件(整理相关知识点)_Calvert 的博客- CSDN 博客_安卓四大组件 https://blog.csdn.net/xchaha/article/details/80398620