2017-03-01 124 views
0

我使用套接字和即时获取数据连续在后台使用Asynctask。Android工作室AsyncTask

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

我有一个.java,在此的.java我有2个公共课:

第一个是一类,我用这个的AsyncTask在后台获取套接字的信息。

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

谢谢

+0

所以你想在回退过程不完整的时候这样做,对吧? – Pedo

+0

是的,在OpenGl类中获取publishProgress数据 – diego

回答

-1

呦可以publishProgress()方法做到这一点,你可以从doInBackground()调用此方法,并且此方法可以在任何时候被调用时,你需要得到你的数据。

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

这可能是工作。

0

确定这是可能的。您可以定义在doInBackground()onProgressUpdate()之间传递的数组类型。您可以发布进度并以此方式消耗。

new AsyncTask<...,MyDataObject,...>() {...}.execute(); 

或者,你可以创建线程之间的发布 - 订阅界面运行dIB()和任何线程消费它。

不是说AsyncTask不适用于长时间运行的操作。这意味着一个相对快速的一次性。您需要考虑在专用执行程序上运行您的任务,以免阻止AsyncTask的所有其他实例默认使用的一个串行执行程序。例如,

executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);