现在的位置: 首页 > 综合 > 正文

安卓开发的心得体会

2017年12月19日 ⁄ 综合 ⁄ 共 592字 ⁄ 字号 评论关闭

最近做Android开发,越来越发现其实Android的开发的一些技巧与一些MVC框架可谓是异曲同工之妙,尤其是在多线程环境下,UI主线程需要根据子线程的一些返回结果来绘制UI元素,比如说你要设计一个列表,用ListView控件,当你点击一个列表的某个Item时需要开启一个后台线程去执行一个网络操作,比如获取一段音频,当你再次点击同一个Item时,如果此时下载已经完成,你就需要播放这个音频,如果你下载还没完成就需要终止下载,而当你点击的是不同的Item时,如果上一个Item下载还没完成,就需要终止下载,如果上一个条目已经在播放了,就需要终止播放,然后再去做当前这个Item的操作。而且这当中还涉及到一些UI的动画效果,比如播放音频的时候显示播放进度,下载的时候显示下载进度,这样一来逻辑就会变得很混乱,由于又涉及到多线程,同步做的不好,就会导致逻辑混乱和界面动画混乱,那应该如何解决这个问题呢?

一个很好的办法就是MVC模式的思想来设计你的逻辑。

我们可以为每个Item设置一个状态,比如一个enum Status表示状态,然后画一个状态图,当不同的事件发生的时候(比如点击事件,或者下载完成事件)就通过Handler发送给UI线程处理,UI线程首先是做状态转换,然后根据不同的状态来绘制UI,这样就把View和数据变换的过程分离了,逻辑就会比较明朗,也不会出现多线程里UI混乱的现象

抱歉!评论已关闭.