一个简单的问题:是否可以返回in的值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?
}
}
然后在我的Activity/ Fragment:
// The task is started from activity
myTask.execute()
// something like this?
myvalue = myTask.getvalue()
编辑:这是很久以前我不熟悉Java的地方问的,现在我对它有了更好的了解,我将做一个简短的总结:
异步任务的要点是该任务为asynchronous,这意味着您调用execute()该任务后,该任务将在其自己的线程上开始运行。从asynctask返回一个值将是没有意义的,因为原始的调用线程已经进行了其他操作(因此该任务是异步的)。
想一想时间:在某个时间点,您启动了一个将与主线程并行运行的任务。当并行运行任务完成时,主线程上的时间也已过去。并行任务无法及时返回以将值返回到主线程。
我来自C,所以对此我不太了解。但是似乎很多人都在问同样的问题,所以我想我会澄清一下。
GCT1015
慕尼黑的夜晚无繁华
慕慕森