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

话说在 Android 里,有没有什么办法能够让主线程不阻塞,等子线程执行完去通知主线程?

  •  
  •   Amarok · 2017-02-16 16:59:13 +08:00 · 10487 次点击
    这是一个创建于 2835 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在做网络转发这一块儿,主线程是一个大循环,这其中又需要开子线程执行完,把结果插入到主线程的循环里....有没有什么好的思路?用 Callable 可行么?
    9 条回复    2017-02-18 22:58:16 +08:00
    Lonely
        1
    Lonely  
       2017-02-16 17:01:37 +08:00 via iPhone
    handler
    Chrisplus
        2
    Chrisplus  
       2017-02-16 17:03:40 +08:00
    任何异步的方法啊……
    macszh2013
        3
    macszh2013  
       2017-02-16 17:05:56 +08:00
    使用 Handler
    xiusedelang
        4
    xiusedelang  
       2017-02-16 17:07:44 +08:00 via Android
    子线程完事了给主线程打个招呼,实现上就是向主线程的 handler post 一个 message
    iFlicker
        5
    iFlicker  
       2017-02-16 17:10:13 +08:00 via Android
    歪了脑袋想了一下 还是 Handler 呗
    LancerXin
        6
    LancerXin  
       2017-02-16 17:11:57 +08:00
    Handler+HandlerThread+Looper
    enenaaa
        7
    enenaaa  
       2017-02-17 09:20:37 +08:00
    消息机制不就是干这个的么
    vjnjc
        8
    vjnjc  
       2017-02-17 15:07:48 +08:00
    android 源生的 task 就行啊
    codehz
        9
    codehz  
       2017-02-18 22:58:16 +08:00
    AsyncTask 好是好,但是有时需要手动判断 UI 有没有被销毁,而且还有强引用导致的内存泄露问题。。。建议如果环境允许的话,用 Loader
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3525 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.