¿Cómo puedo cerrar mi aplicación que aún se ejecuta en segundo plano después de cerrarla?

Mi aplicación se ejecuta normalmente y cuando paso a alguna actividad nueva, utilicé el código como

Intent start=new Intent(current activity.this,new activity.class);
                startActivityForResult(start, 0);
                finish(); 

y luego, cuando tengo que volver a la actividad anterior, utilicé el siguiente código

Intent start = new Intent(current activity.this,earlier activity.class);
                    startActivity(start);
                    finishActivity(0);

Creo que de esta manera la pila de actividades puede quedar clara. Y al hacer clic en el botón o en el botón de retroceso del teléfono, utilicé el siguiente código

Intent startMain = new Intent(Intent.ACTION_MAIN);
                startMain.addCategory(Intent.CATEGORY_HOME);
                startMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(startMain);

Pero mi aplicación aún se ejecuta en segundo plano. También usé el android:noHistory="true" la aplicación se elimina del fondo, pero apareció el mensaje de que la aplicación se cerró a la fuerza. Simple finish(); pasa a la última actividad. yo tambien vi el enlace Salir de una aplicación, ¿está mal visto? pero soy nuevo, así que no entendí mucho. Por favor, sugiérame de alguna manera cómo puedo lidiar con esto.

preguntado el 03 de mayo de 12 a las 16:05

¿Hay alguna razón por la que quieras estropear todo el concepto de reanudable? tareas y el ciclo de vida de la aplicación administrado automáticamente? -

Tengo un total de 8 actividades y controlo los movimientos de uno a otro. No hay ninguna razón especial para eso. -

1 Respuestas

Creo que de esta manera la pila de actividades puede quedar clara.

Eres bienvenido a tu opinión. startActivityForResult() no está diseñado para cómo lo estás usando.

Y al hacer clic en el botón o en el botón de retroceso del teléfono, utilicé el siguiente código

Despediría a cualquiera que trabajara para mí y que hiciera esto.

Por favor siga Pautas de diseño de Android para el manejo adecuado del botón ATRÁS -- aunque no estoy de acuerdo con todo lo que hay allí, es mucho mejor que lo que estás haciendo. A los ojos del usuario, ATRÁS significa atrás.

Pero mi aplicación aún se ejecuta en segundo plano.

Siempre que no haya filtrado ningún hilo o servicio, su proceso se ejecutará, pero no consumirá un tiempo de CPU significativo. Android terminará el proceso cuando necesite la RAM. De esta manera, si el usuario elige regresar a su aplicación, o si algo más en su aplicación necesita ejecutarse (por ejemplo, AlarmManager evento, transmisión Intent), Android no tiene que perder tiempo de CPU ni duración de la batería para bifurcar otro proceso.

Por favor, sugiérame de alguna manera cómo puedo lidiar con esto.

Simplemente deje el proceso en paz y nadie saldrá lastimado.

contestado el 03 de mayo de 12 a las 18:05

¿Hay algún inconveniente en tener la aplicación en segundo plano? ¿Se está ejecutando esa aplicación en ese momento? - Chica valiente

@BraveGirl: "¿Se está ejecutando esa aplicación en ese momento?" -- eso depende de lo que entiendas por "correr". Si tiene sus propios subprocesos en segundo plano que aún se están ejecutando, seguirán haciendo su trabajo, por lo que es importante encontrar un momento para detener esos subprocesos. Sin embargo, más allá de eso, no se ejecutará gran parte de su código. Entonces, el costo principal para el usuario es solo la porción de RAM que está consumiendo, y Android terminará su proceso tan pronto como tenga un mejor uso para esa RAM. - CommonsWare

Sí, he usado un hilo para el temporizador en mi aplicación, entonces, ¿cómo puedo detener ese hilo? ¿Puede decirme cómo puedo detener estos hilos correctamente? Y en ejecución significa que está en segundo plano y lo verifiqué desde el administrador de tareas. - Chica valiente

@BraveGirl: "Sí, he usado un hilo para el temporizador en mi aplicación, entonces, ¿cómo puedo detener ese hilo?" -- No puedo decírtelo cómo para detener ese hilo, ya que no sé cómo está configurado tu hilo. Hay muchos libros sobre modelos de subprocesamiento de Java. En el momento en que para detener ese hilo sería cuando el usuario VUELVE a salir de su aplicación, o cuando su aplicación pasa al fondo (consulte onUserLeaveHint()). - CommonsWare

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.