Utilizar AsyncTask para iniciar la actividad
Estoy utilizando asyncTask para mostrar el cuadro de diálogo y luego, después de unos minutos, iniciar una nueva actividad.
Desafortunadamente esa actividad comienza antes de que la tarea terminara ???
- AsyncTask: doInBackground no se llama
- AsyncTask - ¿qué parámetros se necesitan para extender y doInBackground?
- AsyncTask Threading Rule - ¿Realmente sólo se puede usar una vez?
- DoInBackground tarda mucho en comenzar
- AsyncTask no se ejecuta asincrónicamente
package com.android.grad; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.widget.Toast; public class LoginTask extends AsyncTask<Void, Void, Boolean> { private Activity activity; private ProgressDialog pd; public LoginTask(Activity activity) { this.activity = activity; } @Override protected void onPreExecute() { pd = ProgressDialog.show(activity, "Signing in", "Please wait while we are signing you in.."); } @Override protected Boolean doInBackground(Void... arg0) { try { Thread.sleep(10000000); } catch (InterruptedException e) { } pd.dismiss(); return true; } @Override protected void onPostExecute(Boolean result) { Toast.makeText(activity, Boolean.toString(result), Toast.LENGTH_LONG).show(); }
}
Y ejecuto la tarea del oyente del tecleo del botón: S
private OnClickListener loginOnClick = new OnClickListener() { public void onClick(View v) { new LoginTask(LoginActivity.this).execute(); startActivity(new Intent(LoginActivity.this, BuiltInCamera.class)); } };
¿Hay manera de startActivity de mi subClass ofAsyncTask.
- Asyntask: ¿por qué actualizar el hilo de la interfaz de usuario en doInbackground se encontrará con el error?
- Cómo utilizar notifydatasetchanged in recyclerview gridlayout
- No se puede acceder a "findViewById" en AsyncTask
- Cómo pasar datos de la clase de hilo independiente a la actividad en Android
- ¿Cancelar la carga de Google Drive posible?
- ¿Puedo determinar si una referencia a una actividad es válida?
- Comportamiento del contexto de Android AsyncTask
- Parámetros de asyncTask.onPostExecute () vs variable de instancia
Sí, puede iniciar la actividad desde la subclase de AsyncTask. Vea abajo:
@Override protected void onPostExecute(Boolean result) { Toast.makeText(activity, Boolean.toString(result), Toast.LENGTH_LONG).show(); activity.startActivity(new Intent(activity, BuiltInCamera.class)); }
Después de realizar este cambio, asegúrese de quitar startActivity de OnClickListener
Llame a this startActivity(new Intent(LoginActivity.this, BuiltInCamera.class));
onPostExecute()
después de mostrar el mensaje de brindis.
De esta manera, una nueva actividad será llamada después de que su AsyncTask
ha terminado.
También puedes usar
Intent intent = new Intent(activity, PageViewActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.getApplicationContext().startActivity(intent);
Call startActivity
dentro del método AsyncTask
de AsyncTask
- Cómo configurar el color del botón mediante programación
- Android – Sólo lectura del sistema de archivos IOException