En Android, al igual que ocurre en iOS, las aplicaciones no se cierran completamente, sino que pasan al estado background, de forma que pueden seguir ejecutando código si así lo requieren (por ejemplo obtener posiciones GPS, mantener una conexión con un servidor Web, etc).
Esto permite que el usuario cuando lanza de nuevo una aplicación Android, la encuentre exactamente en el mismo estado que la dejó cuando ‘salio’ de ella (o comenzó a utilizar otra), pero es un inconveniente si necesitamos que la aplicación comience siempre en un estado en particular, por ejemplo, solicitando usuario y contraseña o conectándose a un servicio Web para recuperar los últimos mensajes, etc.
Para solucionarlo podemos incluir en nuestro archivo manifest.xml, las siguientes líneas, en la definición de la actividad que queremos que se muestre en primer lugar.
<activity android:name=".MiNombre" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Atención: esto no hace que la aplicación se reinicie completamente, sino que elimina del stack de actividades todas las que fueron iniciadas tras esta actividad. En otras palabras, el método onCreate() de la actividad, no será llamada, sólo lo será el método onResume().
Hey! Qué opinas sobre el artículo?