Вернуть значение из AsyncTask в Android [дубликат]

На этот вопрос уже есть ответ здесь:

Как получить результат OnPostExecute () для основной деятельности, потому что AsyncTask является отдельным классом? 16 ответов

Один простой вопрос: возможно ли вернуть значение в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 было бы бессмысленно, поскольку исходный вызывающий поток уже выполнял другие действия (таким образом, задача асинхронная).

Подумайте о времени: В какой-то момент вы запустили задачу, которая будет выполняться параллельно с основным потоком. Когда задача параллельного выполнения завершена, время в главном потоке также истекло. Параллельная задача не может вернуться назад во времени, чтобы вернуть значение в основной поток.

Я приехал из Си, поэтому я не знал об этом много. Но, похоже, у многих людей один и тот же вопрос, поэтому я решил немного прояснить его.

Ответы на вопрос(3)

Ваш ответ на вопрос