相关疑难解决方法(0)

如何将OnPostExecute()的结果导入主活动,因为AsyncTask是一个单独的类?

我有这两节课.我的主要活动和扩展的一个AsyncTask,现在在我的主要活动,我需要从得到的结果OnPostExecute()AsyncTask.我怎样才能将结果传递给我的主要活动?

这是示例代码.

我的主要活动.

public class MainActivity extends Activity{

    AasyncTask asyncTask = new AasyncTask();

    @Override
    public void onCreate(Bundle aBundle) {
        super.onCreate(aBundle);            

        //Calling the AsyncTask class to start to execute.  
        asyncTask.execute(a.targetServer); 

        //Creating a TextView.
        TextView displayUI = asyncTask.dataDisplay;
        displayUI = new TextView(this);
        this.setContentView(tTextView); 
    }

}
Run Code Online (Sandbox Code Playgroud)

这是AsyncTask类

public class AasyncTask extends AsyncTask<String, Void, String> {

TextView dataDisplay; //store the data  
String soapAction = "http://sample.com"; //SOAPAction header line. 
String targetServer = "https://sampletargeturl.com"; //Target Server.

//SOAP Request.
String soapRequest …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

338
推荐指数
7
解决办法
27万
查看次数

从Android中的AsyncTask返回一个值

一个简单的问题:是否可以返回值AsyncTask

//AsyncTask is a member class
private class MyTask extends AsyncTask<Void, Void, Void>{

    protected Void doInBackground(Void... params) {
         //do stuff
         return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        //do stuff
        //how to return a value to the calling method?
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的Activity/ Fragment:

// The task is started from activity
myTask.execute()
// something like this?
myvalue = myTask.getvalue() 
Run Code Online (Sandbox Code Playgroud)

编辑:这是很久以前我不熟悉Java的问题,现在我对它更好了,我会做一个简短的总结:

异步任务的重点是任务是asynchronous,这意味着在您调用execute()任务之后,任务开始在自己的线程上运行.从asynctask返回一个值是没有意义的,因为原始调用线程已经继续做其他事情(因此任务是异步的).

想想时间:在某个时间点,您启动了一个与主线程并行运行的任务.当并行运行任务完成时,主线程上也经过了时间.并行任务无法及时返回以将值返回给主线程.

我是从C来的,所以我对此并不了解.但似乎很多人都有同样的问题,所以我想我会稍微澄清一下.

java android asynchronous return android-asynctask

115
推荐指数
6
解决办法
17万
查看次数

标签 统计

android ×2

android-asynctask ×2

asynchronous ×1

java ×1

return ×1