安卓开发的心得体会

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值