【Android仿今日头条下拉刷新中的vector动画】
http://blog.csdn.net/coderder/article/details/76034426
由于包含比较多的vector pathData的编写,不太适合手机端阅读,这里直接推荐给大家。
作者:拉丁吴
链接:
http://www.jianshu.com/p/7fa7679572cc
本文由作者授权发布。
为了帮助开发着打造一款优秀的APP,Google可谓费尽心力,推出了各种诸如MVP,MVVM等等项目架构的思路,帮助开发者更加高效的开发,尽管这样,Google还是接着推出了一个新的项目架构,以便给予开发者更多的选择,至于这种架构思路和MVP等框架的优劣,各位看完文章或许自有定论。
在移动操作系统上开发软件其实是十分复杂的一件事情,因为我们随时需要面对系统和用户的各种不可预料的操作,很多时候,事情并不向着我们预设的方向方向进展。因此系统向我们提供了核心组件的生命周期这种东西,告知我们的APP正处在什么样的状况中,以便于我们做出相应的处理。
如上图。
虽然Google给出了Activity非常详尽的生命周期结构,因此我们对根据生命周期做出相应的合理的安排,比如添加和移除实时GPS位置监听:
可是随着业务的逐渐复杂,我们可能在添加监听之间需要向服务器验证某些用户信息,等返回信息正确才去监听定位。那么在网络异步回调的时候,我们就很难知道当前的activity的生命周期状态。
如果发生上图的情况,那么我们的占用的相关资源就可能永远无法移除了。这还只是冰山一角,大家尽可以想想,当我们的异步调用面对无法预知的用户操作和系统处理的时候,什么问题都可能发生。
总而言之,由于我们对于UI实时的状态做不到了如指掌,以至于对数据和逻辑的处理就无法尽善尽美。这是类似隐患得不到很好的解决根本原因。
这次Google推出了一套新的项目架构组件和架构思路,从UI到Data,帮助我们更加精准的开发自己的APP。
2.1 核心:Lifecycle Components
这套架构最核心的就是生命周期组件,:Lifecycle Components用于管理UI控制器(Activity/Freagment)的生命周期,方便查询当前组件生命周期的状态。
可查询的状态如下:
具体的使用方式有两种:
// 通过继承,就已经将自己的生命周期的交给了Lifecycle Components管理了。
public class MainActivity extends LifecycleActivity {
}
那我们如何使用呢?
看到这里,你一定心头一喜,如果有这个组件,那么我们就完全有能力将Activity作为一个UI的控制器,仅仅用来显示UI和相应用户操作,把Activity的大小缩小至最小。不用着急,大礼包远不止这些。