android 中网络加载,更新 UI,大家一般怎么使用线程,代码才不会丑

2015-01-29 17:19:36 +08:00
 Registering

项目用了太多的handler+Thread,或者AsyncTask,,最后感觉代码好丑,,,,,

2744 次点击
所在节点    程序员
18 条回复
scutmason
2015-01-29 17:33:17 +08:00
HandlerThread 不行吗
Registering
2015-01-29 17:36:24 +08:00
有人用封装过的开源线程库呢
Registering
2015-01-29 17:36:45 +08:00
@Registering 呢---吗
MuhammadWang
2015-01-29 17:37:04 +08:00
一般都是HandlerThread, 然后post Message.
AsyncTask还是避免吧,代码看起来比较乱,而且有并发上限.
hjc4869
2015-01-29 17:45:13 +08:00
搞WP开发写C#各种优雅地await的默默地看着你们。。
dhymark
2015-01-29 17:52:29 +08:00
https://github.com/Trinea/android-open-project#%E4%B8%89%E7%BD%91%E7%BB%9C%E7%9B%B8%E5%85%B3
查找网络相关和Android公共库,自己选个合适的用吧
allan1st
2015-01-29 17:53:36 +08:00
为什么不用 IntentService?
bkmi
2015-01-29 17:54:28 +08:00
你倒是封装一下啊
finian
2015-01-29 19:21:21 +08:00
@hjc4869 异步回调确实是反人类的并发模型T__T
finian
2015-01-29 19:25:55 +08:00
要想异步代码不会丑,RxJava 大法来解救。。。
MuhammadWang
2015-01-29 19:33:41 +08:00
@finian 简单的异步回调还好,怕的是需要流控的逻辑
miao1007
2015-01-29 19:41:58 +08:00
自己封装AsyncTask,然后加上回调,这样写太麻烦了......我欣赏的是Square公司的Picasso与Retrofit这两个异步回调,简直美爆了
faywong8888
2015-01-30 11:38:21 +08:00
RxJava
pubby
2015-01-30 12:38:58 +08:00
@MuhammadWang +1 根据每步回调结果产生更多异步分支的,简直崩溃 -_-

大家不用Volley吗?起码比AsyncTask好一点
Registering
2015-01-30 14:42:31 +08:00
@pubby 貌似记得volley的那两个回调方法是已经处理过异步了?

用过写小例子,,,但是官方给出的版本有所欠缺,很多功能要自己加进去,,比如上传文件之类
pubby
2015-01-30 20:44:12 +08:00
@Registering 请求在异步队列中完成的,回调的时候应该是回到UI线程了
fashioncj
2015-01-30 22:55:30 +08:00
当时我自己想了好久的封装~默默围观大神指点~
Registering
2015-02-01 14:34:19 +08:00
@pubby 亲测,不行,,,,还是得开个thread执行volley请求,请求返回后,在volley的回调函数里还是要发送message到handler里去处理,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/166550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX