首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓直播间AsyncTask

安卓直播间AsyncTask
EN

Stack Overflow用户
提问于 2017-03-02 03:19:53
回答 2查看 140关注 0票数 0

我正在使用套接字,而即时通信工具使用Asynctask在后台连续获取数据。

我使用publishProgress()将这些数据发送到onProgressUpdate(),我想知道是否有一种方法可以从函数onProgressUpdate()获取数据或将其发送到另一个类,因为我确实需要在另一个类中使用这些数据。至少,这是可能的吗?

我有一个.java,在这个.java中我有两个公共类:

第一个是一个类,在这个类中我在后台使用这个异步任务来获取套接字信息。

在第二个公共类中,我使用OpenGL,并且我需要使用该数据。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-03-02 03:42:11

当然这是可能的。定义在doInBackground()onProgressUpdate()之间传递的数组的类型。您可以只发布进度并以这种方式使用它。

代码语言:javascript
复制
new AsyncTask<...,MyDataObject,...>() {...}.execute();

或者,您可以在运行dIB()的线程和正在使用它的线程之间创建一个发布-订阅接口。

并不是说AsyncTask不适合用于长时间运行的操作。这意味着它是相对较快的一次射击。您需要考虑在一个专用的执行器上运行您的任务,以免阻塞默认情况下用于所有其他AsyncTask实例的一个串行执行器。例如,

代码语言:javascript
复制
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
票数 0
EN

Stack Overflow用户

发布于 2017-03-02 03:40:23

您可以使用publishProgress()方法来实现这一点,您可以从doInBackground()调用此方法,并且可以在需要获取数据时随时调用此方法。

然后从params获取您想要的数据,并将其存储在Asynctask的公共变量中,然后从另一个类访问它。

这可能是工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42540200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档