En mi solicitud tengo 3 actividades:
1. Login
2. AsyncTask
(clase diferente)
3. Welcome
Después de recibir toda la información en el Login Activity
se mueve a la AsyncTask Activity
. Cuando el AsyncTask
se completa se mueve a la Welcome Activity
. Quiero cerrar el Login Activity
tan pronto como AsyncTask Activity
completa su trabajo ..
Estoy tratando de usar el siguiente código en el onPostExecite()
de AsyncTask
:
Login.this.finish();
Pero estoy recibiendo un error de: No enclosing instance of the type of Login is accessible in scope
..
Por favor dime como puedo cerrar mi Login Activity
después de completar mi AsyncTask
..
Gracias por adelantado...
Respuestas
9 para la respuesta № 1Como AsyncTaskActivity está en un archivo separado de LoginActivity, no puede terminar LoginActivity de la siguiente manera:
Login.this.finish ();
En su lugar, debe pasar la Referencia de actividad como parámetro en la Clase AsyncTaskActivity, como puede definir el siguiente constructor:
private class AsyncTaskActivity extends AsyncTask<String, Void, String> {
Activity mActivity;
public AsyncTaskActivity(Activity activity)
{
super();
this.mActivity=activity;
}
}
Y cuando quieras terminar la actividad llama.
this.mActivity.finish();
Crear un objeto AsyncTaskActivity en LoginActivity por
AsyncTaskActivity asynTask = new AsyncTaskActivity(LoginActivity.this);
2 para la respuesta № 2
Okay . debe llamar a finish () en el método onPostExcecute después de indicar una nueva actividad.
PASOS:
1) actividad de inicio de sesión
2) Tarea Asynac (pasar contexto de aplicación)
3) Llamar nueva actividad
4) finalice su actividad de inicio de sesión en onPostExcecute (context.finish ())