La actividad continúa después de terminar ();

Tengo una aplicación de prueba que tiene un temporizador para toda la actividad de juego donde en usted debe responder tantas preguntas que pueda dentro de los minutos asignados ..

Después de que los minutos asignados terminen, te llevará a la actividad de resultados que muestra tu puntuación. Al pulsar de nuevo, he creado un cuadro de diálogo de alerta que le pregunta si desea volver al menú principal. Si se hace clic en Sí, la página debe volver al menú principal y detener / matar la actividad del juego.

Sin embargo, cuando hago clic en "sí", volveré al menú principal pero mientras esté en cualquier parte de la aplicación, los resultados seguirán mostrando la anterior actividad de juego que tenía. Tal vez hadnt realmente terminó la gameactivity, .. Aquí está el temporizador y el fragmento de prensa de espalda de mi actividad:

new CountDownTimer(seconds, 1000) { public void onTick(long millisUntilFinished) { timer.setText("Seconds left: " + millisUntilFinished / 1000); } public void onFinish() { Intent intent = new Intent(GameActivityAddition.this, Score.class); intent.putExtra("totalscore", score); intent.putExtra("numberquestions", rowId); intent.putExtra("d", difficulty); db.close(); startActivity(intent); } }.start(); @Override public void onBackPressed() { AlertDialog.Builder abuilder = new Builder(GameActivityAddition.this); abuilder.setMessage("Return to Main Menu?"); abuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent main = new Intent(GameActivityAddition.this, Main.class); startActivity(main); finish(); } }); abuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); AlertDialog alert = abuilder.create(); alert.show(); } 

No hay garantía de que finish () cierre su actividad actual inmediatamente (es Android).

Para resolver su problema, pruebe esto,

Mantenga una referencia al temporizador (Va a utilizar esto para cancelar el temporizador cuando el usuario abandona la actividad actual),

 CountDownTimer resultTimer = new CountDownTimer(seconds, 1000) { public void onTick(long millisUntilFinished) { timer.setText("Seconds left: " + millisUntilFinished / 1000); } public void onFinish() { Intent intent = new Intent(GameActivityAddition.this, Score.class); intent.putExtra("totalscore", score); intent.putExtra("numberquestions", rowId); intent.putExtra("d", difficulty); db.close(); startActivity(intent); } }.start(); 

Y en onBackPressed () – cancelar el temporizador en setPositiveButton Callback,

 @Override public void onBackPressed() { AlertDialog.Builder abuilder = new Builder(GameActivityAddition.this); abuilder.setMessage("Return to Main Menu?"); abuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { resultTimer.cancel(); //Stop the timer resultTimer = null; Intent main = new Intent(GameActivityAddition.this, Main.class); startActivity(main); finish(); } }); abuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); AlertDialog alert = abuilder.create(); alert.show(); } 

La propiedad de CountDownTimer es, incluso has terminado la actividad que continúa countDown. Si desea detener esto, ponga countTimerVar.cancel() al finish() y en pressBackButton .

Finalizar una actividad de padre de la actividad de niño puede implementarse iniciando la actividad de niño usando el startActivityForResult e implementar el onActivityResult para procesar el resultado devuelto por la actividad de niño. Ejemplo: Desde ParentActivity, inicie ChildActivity para obtener un resultado usando startActivityForResult() . A continuación, establezca un resultado que informe ParentActivity para finalizar también. Call finish () en ChildActivity. Cuando ParentActivity recibe ese resultado de ChildActivity, ParentActivity llama a finish () en sí mismo también. Y allí usted puede comenzar otra actividad.

Para el código por favor refiérase: http://www.androidcompetencycenter.com/2009/03/tutorial-how-to-start-a-new-activity/

  • Widget Android dimensiones?
  • Cómo cambiar todas las transiciones de actividad de una vez en la aplicación de Android?
  • Android: reenvía las consultas de búsqueda a una sola actividad que maneja la búsqueda
  • Actividad con un teclado de software visible
  • Volver a actividad específica de la pila
  • ¿Cómo mostrar un diálogo para confirmar que el usuario desea salir de una actividad de Android?
  • ¿Cómo auto desplazarse hasta Recycler ver en Android?
  • Actividad de Android que no se muestra cuando se desactiva la pantalla y se bloquea la pantalla
  • AppCompatActivity no se puede asignar a Actividad
  • La actividad de un proceso muerto sigue visible en la lista después de que presionó
  • El botón Android Up no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.