Después de ASyncTask.execute () do x () de Activity

Este es uno que no estoy seguro de cómo hacerlo. Básicamente, tengo una clase ASyncTask que está haciendo su trabajo como de costumbre en el fondo. Me gustaría hacer algo después de que termine. Ahora, antes de saltar y decir "solo use onPostExecute ()", hay un problema. El método que necesito ejecutar está en la actividad y no en la clase de tarea.

A mi modo de ver, tengo 2 opciones.

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

Espero poder hacerlo de esta manera, ya que es muy simple y me permite verificar cuándo se completa la tarea sin tener que sondear constantemente la actividad y obtener el estado () sobre la actividad. No creo que tenga esta suerte, pero si alguien tiene una forma de hacerlo, sería genial

SEGUNDO:

Pasa la actividad como parámetro a ASyncTask. Esto es complicado y no estoy contento de usarlo, pero aparte de eso y de la referencia del objeto, no sé si funcionará

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

Luego, en las Tareas onPostExecute, puedo hacer que llame a MyActivity.doX ();

DO:

Una tercera forma sería hacer de la asynctask una clase privada en la actividad en sí misma, pero realmente me gustaría mantenerla separada. Resusabilidad y lo que no -

Tiene alguna idea sobre esto?

Para resumir, es necesario hacer doX () después de que finalice task.execute. Cualquier idea apreciada.

RE:

Ok, sé que estoy en un rollo aquí. Sigo pensando en nuevas soluciones. Un método de clase o método estático que se puede llamar desde cualquier lugar.

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

Desde AsyncTask

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta