Async tarea para mostrar un AlertDialog
Durante los últimos días, no he podido resolver un problema con mi cuadro de diálogo. Estoy ejecutando un hilo para mostrar el cuadro de diálogo para 5000ms y eliminarlo. Y estoy tratando de mostrar un brindis ("SUCCESS"). El problema es que estoy recibiendo el cuadro de diálogo por segunda vez también. Soy nuevo en el desarrollo de Android y tengo que resolver esto con Async Task para que pueda retrasar el segundo hilo y mostrar una alerta dialog.builder con un botón positivo en lugar de brindis. Me sonreí mucho pero me confundí a implementar esto
Aquí estoy enviando mis credenciales al servidor y mientras que el envío estoy demostrando un cuadro de diálogo del progreso para 5000ms y quiero tener un hilo de rosca separado para demostrar el dialog.builder con un botón positivo. (Cuando el usuario consigue una respuesta en el Logcat para que debo comprobar el responsecode == 1 o no desde el logcat para mostrar el constructor)
- "No hay un constructor por defecto disponible en android.database.sqlite.SQLitepenhelper" en Android Studio
- Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
- Cómo dibujar LibGDX Sprite de Constructor en blanco
- ¿Cómo comprobar si AlertDialog.builder está mostrando y cancelando si está mostrando?
- ¿Por qué getApplicationContext () en el constructor de Activity lanza una excepción de puntero nulo?
Plz alguien me ayude a resolver esto con algún fragmento de código si es posible.
Gracias por adelantado.
Este es el código donde necesito implementar la tarea Async
Button signin = (Button) findViewById(R.id.regsubmitbtn); signin.setOnClickListener(new OnClickListener() { public void onClick(View v) { // showDialog(0); t = new Thread() { public void run() { register(); try { while (counter < 2) { showmsg(0); Thread.sleep(5000); removeDialog(0); // Toast.makeText(Register.this, "Registerd", Toast.LENGTH_LONG).show(); showmsg(1); // toast.show(); Thread.sleep(1000); } } catch (InterruptedException e) { e.printStackTrace(); } } }; t.start(); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case 0: { ++counter; dialog = new ProgressDialog(this); if (counter == 1) { dialog.setMessage("Registering..."); } else { String resultsRequestSOAP = ""; if (Log.v("TAG", String.valueOf(resultsRequestSOAP)) == 1) ; { Context context = getApplicationContext(); CharSequence text = "Registerd"; int duration = Toast.LENGTH_LONG; Toast toast = Toast.makeText(context, text, duration); toast.show(); } } dialog.setIndeterminate(true); dialog.setCancelable(true); return dialog; } } return null; } public void showmsg(int actionsToBePerformedOnScreen) { Message msg = new Message(); msg.what = actionsToBePerformedOnScreen; handler.sendMessage(msg); } public Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: showDialog(0); break; case 1: // clear all images in the list removeDialog(0); break; } }; };
- Intentservice no hay constructor vacío, pero hay un constructor
- ¿Por qué no puedo pasar parámetros a Android Activity Constructor?
- ¿Cómo iniciar un intento pasando algunos parámetros a él?
- ¿Es posible evitar los constructores al instanciar objetos en Android?
- Android: Debería agregar un constructor vacío a un fragmento utilizado en ViewPager
- Creación de un fragmento: constructor vs newInstance ()
- ¿Cuál es la diferencia entre Contexto y Acitividad?
- Cómo insertar el número de editText en AlertDialog Android
Fácil: mostrar el diálogo onPreExecute
, register () en doInBackground
y ocultar el diálogo en onPostExecute
. Finalmente, haga new RegisterTask().execute()
en su onclick
.
private class RegisterTask extends AsyncTask<Void, Void, Boolean> { private final ProgressDialog dialog = new ProgressDialog(YourClass.this); protected void onPreExecute() { this.dialog.setMessage("Signing in..."); this.dialog.show(); } protected Boolean doInBackground(final Void unused) { return Main.this.register(); //don't interact with the ui! } protected void onPostExecute(final Boolean result) { if (this.dialog.isShowing()) { this.dialog.dismiss(); } if (result.booleanValue()) { //also show register success dialog } } }
¿Por qué no usa Android AsyncTask ? Por ejemplo:
public class MyPreloader extends AsyncTask<InputObject, Void, OutputObject>{ private Context context; private ProgressDialog dialog; public MyPreloader(Context context){ this.context = context; } @Override protected void onPreExecute() { dialog = new ProgressDialog(context); dialog.setMessage("Please wait..."); dialog.setIndeterminate(true); dialog.show(); super.onPreExecute(); } @Override protected ResponseBase doInBackground(InputObject... params) { InputObject input = params[0]; //some code for background work } @Override protected void onPostExecute(OutputObject result) { if (dialog.isShowing()) { dialog.dismiss(); } super.onPostExecute(result); }
- No se pudo ejecutar dex y Conversión al formato Dalvik.
- IntentReceiver filtrada en Google Cloud Messaging