La aplicación de Android se reinicia al abrirla haciendo clic en el icono de la aplicación.

Escenario:

Abro mi aplicación haciendo clic en icono, hacer algo, navegar por las actividades, pausar la aplicación haciendo clic en el botón Inicio.

Caso 1:

Si abro mi aplicación haciendo clic en el icono de nuevo, la aplicación se reiniciará desde la primera actividad.

Caso 2:

Si abro mi aplicación de aplicaciones recientemente abiertas (en 4.0 pulsando el botón de menú y seleccionando mi aplicación) se inicia desde el estado de pausa.

Quiero que el comportamiento 2 siempre ocurra, no quiero que mi aplicación se reinicie cada vez que se abre haciendo clic en el icono.

He comparado mi archivo de manifiesto con otras aplicaciones y son similares a la mía, pero se comportan de manera diferente (es decir, como el segundo caso que quiero).

Editar:

Esto se ha preguntado aquí: La aplicación se reinicia completamente cuando se inicia con la pulsación de icono en el lanzador

Pero no hay respuestas 🙁

    4 Solutions collect form web for “La aplicación de Android se reinicia al abrirla haciendo clic en el icono de la aplicación.”

    Lo encontré. Había puesto una bandera android:launchMode="singleTask" en mi bandera de la actividad . He eliminado ese código.

    También onsaveInstance método onsaveInstance a todas las actividades en mi código y está funcionando ahora!

    Gracias 🙂

    Añada esto a su actividad de lanzador:

     if (!isTaskRoot()) { finish(); return; } super.onCreate(savedInstanceState); 

    Trate de reemplazar el código de actividad de splash con este código ..

     public class Splash extends Activity { protected boolean _active = true; protected int _splashTime = 2000; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.splash); Thread splashTread = new Thread() { @Override public void run() { try { int waited = 0; while (_active && (waited < _splashTime)) { sleep(100); if (_active) { waited += 100; } } } catch (InterruptedException e) { e.toString(); } finally { Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); finish(); } } }; splashTread.start(); } @Override protected void onPause() { super.onPause(); } @Override public void onBackPressed() { // TODO Auto-generated method stub // super.onBackPressed(); } } 

    En la actividad actual, establezca alguna imagen que deba mostrarse durante 2 segundos como a continuación.

     ImageView im = new ImageView(this); im.setImageResource(set your image); setContentView(im); intentMainScreen = new Intent(getApplicationContext(), MainScreen.class); Handler x = new Handler(); x.postDelayed(new splashhandler(), 2000); 

    A continuación, inicie su actividad en la clase SplashHandler (que implementa la actividad ejecutables y de inicio de llamada en el método run).

    Se mostrará su pantalla Splash durante 2 segundos y comenzar otra actividad.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.