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.
- ¿Es seguro hacer toda la limpieza en onDestroy?
- Convertir una cadena en una clase de actividad
- Fab.show () no animado por primera vez después de inicializar nueva actividad
- La aplicación se bloquea al cambiar de actividad de cocos2d-x a otra actividad en Android
- Terminar la actividad en onActivityResult no funciona
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 obtener el valor actualizado de la preferencia compartida en el servicio
- ¿Cómo puedo pasar datos entre Actividades en la aplicación de Android?
- Comportamiento del botón de retroceso de Android
- Mejores prácticas de Android para conectar las actividades
- Pantalla secundaria de Android: persistencia a través de la invocación de actividad
- recorte circular bitmap en android
- Añadir diseño con parámetros programáticamente Android
- Cambiar y aplicar el tema en tiempo de ejecución en Android
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/
- Android Testing – Problema con ActivityInstrumentationTestCase2?
- Rotación de pantalla de pantalla en vivo