V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Registering
V2EX  ›  程序员

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

  •  
  •   Registering · 2015-01-29 17:19:36 +08:00 · 2721 次点击
    这是一个创建于 3374 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    18 条回复    2015-02-01 14:34:19 +08:00
    scutmason
        1
    scutmason  
       2015-01-29 17:33:17 +08:00
    HandlerThread 不行吗
    Registering
        2
    Registering  
    OP
       2015-01-29 17:36:24 +08:00
    有人用封装过的开源线程库呢
    Registering
        3
    Registering  
    OP
       2015-01-29 17:36:45 +08:00
    @Registering 呢---吗
    MuhammadWang
        4
    MuhammadWang  
       2015-01-29 17:37:04 +08:00
    一般都是HandlerThread, 然后post Message.
    AsyncTask还是避免吧,代码看起来比较乱,而且有并发上限.
    hjc4869
        5
    hjc4869  
       2015-01-29 17:45:13 +08:00
    搞WP开发写C#各种优雅地await的默默地看着你们。。
    dhymark
        6
    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
        7
    allan1st  
       2015-01-29 17:53:36 +08:00
    为什么不用 IntentService?
    bkmi
        8
    bkmi  
       2015-01-29 17:54:28 +08:00
    你倒是封装一下啊
    finian
        9
    finian  
       2015-01-29 19:21:21 +08:00
    @hjc4869 异步回调确实是反人类的并发模型T__T
    finian
        10
    finian  
       2015-01-29 19:25:55 +08:00
    要想异步代码不会丑,RxJava 大法来解救。。。
    MuhammadWang
        11
    MuhammadWang  
       2015-01-29 19:33:41 +08:00
    @finian 简单的异步回调还好,怕的是需要流控的逻辑
    miao1007
        12
    miao1007  
       2015-01-29 19:41:58 +08:00
    自己封装AsyncTask,然后加上回调,这样写太麻烦了......我欣赏的是Square公司的Picasso与Retrofit这两个异步回调,简直美爆了
    faywong8888
        13
    faywong8888  
       2015-01-30 11:38:21 +08:00 via Android
    RxJava
    pubby
        14
    pubby  
       2015-01-30 12:38:58 +08:00
    @MuhammadWang +1 根据每步回调结果产生更多异步分支的,简直崩溃 -_-

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

    用过写小例子,,,但是官方给出的版本有所欠缺,很多功能要自己加进去,,比如上传文件之类
    pubby
        16
    pubby  
       2015-01-30 20:44:12 +08:00
    @Registering 请求在异步队列中完成的,回调的时候应该是回到UI线程了
    fashioncj
        17
    fashioncj  
       2015-01-30 22:55:30 +08:00
    当时我自己想了好久的封装~默默围观大神指点~
    Registering
        18
    Registering  
    OP
       2015-02-01 14:34:19 +08:00
    @pubby 亲测,不行,,,,还是得开个thread执行volley请求,请求返回后,在volley的回调函数里还是要发送message到handler里去处理,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5389 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:40 · PVG 16:40 · LAX 01:40 · JFK 04:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.