社区
Android
帖子详情
如何让主线程等待子线程获得网络数据后再继续运行?
RainMi_
2015-10-05 04:46:16
我想要从网络中获取数据,然后在ui中显示获得的数据,但是请求网络数据必须要在子线程中进行,而主线程貌似是不能暂停运行的,那么如何让主线程等待子线程获得网络数据后再继续运行?
...全文
799
10
打赏
收藏
如何让主线程等待子线程获得网络数据后再继续运行?
我想要从网络中获取数据,然后在ui中显示获得的数据,但是请求网络数据必须要在子线程中进行,而主线程貌似是不能暂停运行的,那么如何让主线程等待子线程获得网络数据后再继续运行?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tcmakebest
2015-10-06
打赏
举报
回复
楼主让主线程等待,明显是在开历史的倒车啊.要知道会显示强制关闭的按钮的啊,难道这是可以接受的么 其实只要把主线程的相关功能按钮禁止就可以了,耐心等待强大的 Handler 收到消息, 但也要考虑万一没有消息来, 主线程可以优雅地退出.
阿飞__
2015-10-06
打赏
举报
回复
弄个接口回调撒,子线程执行完后就执行接口回调的方法
qq_31772099
2015-10-06
打赏
举报
回复
可以在主线程调用异步任务,新建类继承AsyncTask,在doInBackground(在子线程执行)方法下完成网络数据加载的工作,然后 doInBackground可以把获得的数据传给onPostExecute(在主线程执行)方法。在这里你就可以把数据回传给主线程了
leobert_lan
2015-10-06
打赏
举报
回复
如果说自己写这个模块的话,反问下版主为什么要让主线程等待,为什么要让主线程等待,为什么要让主线程等待。 1正是为了避免anr,才开子线程。 2让主线程一直显示一个progressbar之类的东西不能算严格的anr,哪怕它真的不鸟你。 版主想说的等待,我看应该是显示给用户一个提示进度的组件,并且在子线程处理结束后得到反馈,继而处理后续逻辑。显然,要使用message。
zhtoad
2015-10-06
打赏
举报
回复
我就记得 AsyncTask 可以实现这个功能
xiaohuanqi
2015-10-05
打赏
举报
回复
首先主线程是不可以等待的,不然就报ANR异常了,其次,子线程获取数据完毕直接发一个消息,使用Handler消息机制,告诉Handler去处理这个消息就达到你说的目的了,Hanlder就是在主线程中执行
microhex
2015-10-05
打赏
举报
回复
哥,主线程是不能等待的啊。。。
星灭
2015-10-05
打赏
举报
回复
不是那个,虽然不知道你怎么请求的,但很多框架都有封装好的网络请求方法,会有一个获取数据成功之后执行的方法,也能在这个方法里面修改主ui
RainMi_
2015-10-05
打赏
举报
回复
引用 1 楼 u013691865 的回复:
子线程获得数据不是有成功的回调方法吗?
你是说handler吗,handler也只会在sendMessage的时候被调用吧,没sendMessage之前,主线程和子线程依旧同时运行互不干扰啊
星灭
2015-10-05
打赏
举报
回复
子线程获得数据不是有成功的回调方法吗?
关于Android
主
线程
依赖
子
线程
获取的结果进行下一步操作的相关总结
子
线程
网络
访问
数据
库,得到
数据
,
主
线程
需要此
数据
进行后续的操作。由于不太了解Android,本想让
主
线程
等待
子
线程
完成后再
继续
,后来查阅资料才知道,
主
线程
是不可
等待
的,因此才将耗时操作放在
子
线程
中操作。 考虑到以上问题,解决方案就是用到Handler了。
子
线程
获取
数据
成功后,由handler将
数据
发送到
主
线程
,由于handler是在
主
线程
中
运行
,所以,可以在其中进行后续的操作。 //开
子
线程
...
Unity进阶篇:
主
线程
和
子
线程
概念及注意点
先理解一下什么是
线程
:
线程
是操作系统级别的概念,现代操作系统都实现并且支持
线程
,
线程
的调度对应用开发者是透明的,开发者无法预期某
线程
在何时被调度执行。基于此,一般那种随机出现的BUG,多与
线程
调度相关。 什么是Unity
主
线程
? 通俗点讲,Unity的
主
流程生命周期函数就是
主
线程
。 常用的生命周期函数: Awake():唤醒事件,游戏一开始
运行
就执行,只执行一次。 OnEnable(...
Java
等待
线程
终止,可用于加载
数据
再刷新界面等操作
Java
等待
线程
终止,用于加载
数据
再刷新界面等操作 最近一直在进行android应用的开发,当时做的app有这样一个需求,即先从
网络
上加载资源,然后再将资源放入adapter中进行展示。为了实现这种需求,我们必须
等待
数据
加载
线程
的终止,然后再调用UI
线程
来对
数据
进行展示。在android开发中,或者说在java开发中,我们可以使用Thread类中的join()方法来实现这个需求,废话不多说,直接
iOS 【Multithreading-
线程
间的交互通信(图片下载示例)(掌握)】
我们常常要将
主
线程
中的事情交给
子
线程
去做,也会常常将
子
线程
处理的结果反馈给
主
线程
,那么就有了
线程
间的交互通信了。 下面由一个图片下载的例
子
来解释这个过程。 效果图: 单击屏幕,会让imageView
获得
图片,而这个图片是从网站上下载下来的。 代码: // // ViewController.m // 36-
线程
间的通信(图片下载)(掌握) // #import "ViewCon
网络
交互与
线程
同步
网络
交互与
线程
同步 有以下场景 一个
子
线程
中有两个
网络
请求任务,一个任务必须在另一个任务完成后才可以
继续
执行。 解决方法 使用CountDownLatch+Thread 具体示例如下: public class SaveMSThread implements Runnable { private Handler handler; int insCount = 0; // 用于保...
Android
80,489
社区成员
91,375
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章