Após ASyncTask.execute () do x () da Activity

Este é um que eu não tenho certeza sobre como fazer. Basicamente eu tenho uma classe ASyncTask que está fazendo seus negócios como de costume em segundo plano. Eu gostaria de fazer algo depois de terminar. Agora, antes de ir em frente e dizer "use onPostExecute ()", há uma pegadinha. O método que preciso executar está na atividade e não na classe Task.

Do jeito que eu vejo, eu tenho 2 opções.

UMA:
<code>    CustomTask task = new CustomTask();
    task.execute(passedParams);
            //when(task.execute is finished)
            {
                doX();
            }
</code>

Espero que eu possa fazê-lo desta maneira, pois é tão simples e me permite verificar quando a tarefa é concluída sem ter que pesquisar constantemente por atividade e getStatus () na atividade. Eu não acho que vou ter essa sorte, mas se alguém tem uma maneira de fazer isso, seria ótimo

B:

Passe a atividade como um parâmetro para o ASyncTask. Isso é confuso e eu não estou feliz em usá-lo, mas afora isso e a referência do objeto, eu não sei se vai funcionar

<code>    CustomTask task = new CustomTask();
    task.execute(passedParams,MyActivity);
</code>

Em seguida, no Tasks onPostExecute, posso apenas chamar o MyActivity.doX ();

C:

Uma terceira maneira seria tornar as asynctask uma classe privada na atividade em si, mas eu realmente gostaria de mantê-las separadas. Ressusabilidade e o que não -

Alguma idéia sobre isso?

Para resumir, precisa doX () após a conclusão da tarefa.executar. Qualquer ideia apreciada.

D:

Ok, eu sei que estou rolando aqui. Eu continuo pensando em novas soluções. Um método de classe ou método estático que pode ser chamado de qualquer lugar.

<code>public class ProfileSettings extends Activity
{
      public static void doX()
      {
          //Logic...
      }
}
</code>

De AsyncTask

<code>MyActivity.doX();
</code>

questionAnswers(4)

yourAnswerToTheQuestion