2017-03-01 125 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);