1.SwipeRefreshLayout
SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1。现在很多app都用的这种刷新样式,使用很方便。
2.RecyclerView
RecyclerView是v7下的一个控件,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager ItemDecoration , ItemAnimato,可以实现ListView、GridView及瀑布流等这些就不过多赘述。
3.使用线程池实现多线程下载
我们都知道,不能在主线程直接下载,我们必须在子线程去下载,不然会造成主线程的阻塞。java的内存机制我们大概都了解,当我们频繁的去new 一个对象或者一个线程是非常的耗费内存的,会造成内存开销增大,程序卡顿等。鉴于此种问题我们引入线程池,它的作用就是帮助我们节省资源提高效率。
(1)自定义线程池策略可以重用线程池中的线程,避免应用中频繁的创建和销毁线程所造成的内存消耗以及性能上不必要的开销;
(2)通过控制线程池的最大线程数能有效控制线程池的最大并发数,避免大量的线程同一时间并发抢占系统资源而造成的阻塞和界面卡死;
(3)可以自己管理线程,定时执行,间隔循环执行,线程关闭等,通过对线程的管理可以避免滥用多线程造成的问题,比如内存泄露、界面卡死、CPU阻塞等.
关于线程池介绍使用可以参考这里