zoukankan      html  css  js  c++  java
  • 网络请求怎么样和UI线程交互? Activity2怎么通知Activity1 更新数据

    1、网络请求怎么样和UI线程交互?
    目前我的做法是,建立线程池管理网络请求线程,通过添加task来新增网络请求。所有的网络操作通过统一的request来实现,网络返回结果通过回调onError和onSuccess来实现对结果的处理(涉及到ui部分用runOnUiThread or handler通知ui更新,工程上两种都有,主要看你喜欢,不过用handler请注意内存泄露问题。。。)
    这种做法好处就是,线程池可以避免不断开启线程导致虚耗资源,同时可以做到管理线程,自定义任务执行的顺序。统一request和回调的原因在于,不需要为每一个请求特例化,直接在回调中做自定义处理。
    当然,若要通用化,最好还是使用manager把这些都包装好再使用,做到分工明确。
     

    2、Activity1打开Activity2,那么Activity2怎么通知Activity1更新数据?(不能用Intent)
    个人觉得最牛掰的写法是广播,或者watcher。牛掰的原因是,不管你要通知多少个activity更新都可以做到,只要注册了消息。
    广播就是注册监听事件,然后发送者发送消息,有兴趣的人注册要监听的消息就可以在广播者发送消息时收到。
    watcher观察者模式道理差不多,是告知通知者说我对某个消息有兴趣,有该消息就通知。
     
     
  • 相关阅读:
    Git :版本控制工具进阶
    Git 提交本地代码
    Git创建代码仓库
    Git
    SQLlite数据库的增删改查
    Android学习第十天
    Android学习第九天
    Android学习第八天
    Android学习第七天
    【k8s】Deployment
  • 原文地址:https://www.cnblogs.com/AceIsSunshineRain/p/5196615.html
Copyright © 2011-2022 走看看