Activity se reinicia al girar el terminal

590 views
Skip to first unread message

Dídac Llamas Masdeu

unread,
Sep 2, 2015, 4:17:46 AM9/2/15
to desarrolladores-android
Buenos días,

Estoy haciendo mi primer proyecto, un sencillo contador de vidas para juegos de cartas varios, y me acabo de encontrar con un contratiempo y no encuentro como evitar lo.

Cuando giro el terminal móvil la activity principal se reinicia y vuelve a valores iniciales, siendo más bien inútil y poco cómodo su uso.

Alguien puede ayudar me?

Roberto Álvarez

unread,
Sep 2, 2015, 5:40:04 AM9/2/15
to desarrollad...@googlegroups.com
In Android Manifest File, put attribute for your <activity> that android:screenOrientation="portrait"

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/0c7457e5-780e-4ec8-b170-20d60c844bd7%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos Contreras

unread,
Sep 2, 2015, 6:24:46 AM9/2/15
to desarrolladores-android
Como indica Roberto, evitas que la pantalla cambie al girar el movil

Dídac Llamas Masdeu

unread,
Sep 2, 2015, 7:36:46 AM9/2/15
to desarrolladores-android
Muchas gracias!

Yo lo que estoy buscando es que no se pierdan los datos, que se mantengan independientemente de la posición de la pantalla, tal vez no me supe explicar.

El dimecres, 2 setembre de 2015 12:24:46 UTC+2, Carlos Contreras va escriure:

Carlos Contreras

unread,
Sep 2, 2015, 7:52:31 AM9/2/15
to desarrolladores-android
Pues entonces lo que debes probar es a añadir al manifest el siguiente trozo de código en el Activity que no quieres que se te reinicie.
android:configChanges="screenSize|orientation"
Un ejemplo seria:
<activity android:name="com.example.MyActivity" android:configChanges="screenSize|orientation">
        </activity>
Yo no lo he probado, pero creo que es asi, pruebalo y comentas que tal te fue.
Espero te sirva de ayuda.

Eduardo Martin Cabrera

unread,
Sep 2, 2015, 9:36:44 AM9/2/15
to desarrolladores-android
No me tomes a mal pero te esta faltando documentarte mas sobre el tema del ciclo de actividades.

Cuando se rota el device, la Activity se destruye y se construye nuevamente;
por lo que hay que tomar los recaudos necesarios de salvar y reponer la info en pantalla, 
que sea conveniente en la interfaz, lo usual es valerse de unos callbacks llamados:

onSaveInstanceState()
onRestoreInstanceState()

y el sistema lo manejara todo


pero tambien algunas veces (muy de vez en cuando) dejar que el sistema lo maneje
(como pueda y a veces no lo hace bien) puede no ser suficiente,
y entonces tenemos que decir "ok, android" deja que esto lo manejo yo :p 

para ello se agrega el valor orientation en el atributo android:configChanges
 del tag Application

ej:

<activity android:name=".MainActivity"
          android:configChanges="orientation"
          ....


luego de eso el sistema ya no resetera el activity y  cuando cambie alguna configuracion de las indicadas en el configChanges
se trabajara desde el callback onConfigurationChanged(), tal como indica la doc, esta ultima forma es mas laboriosa
y se recomienda en lo posible hacerlo dela primera forma
(onSaveInstanceState(), onRestoreInstanceState())


lo primero es que revises la doc oficial:
http://developer.android.com/guide/topics/resources/runtime-changes.html

luego, algunos ejemplos con los callbacks onSave.. onRestore...

https://sekthdroid.wordpress.com/2012/10/04/mantener-los-datos-cuando-rotemos-la-pantalla-en-android/
http://www.androidcurso.com/index.php/tutoriales-android/37-unidad-6-multimedia-y-ciclo-de-vida/163-guardando-el-estado-de-una-actividad
http://speakinbytes.com/2014/01/android-persistencia-de-datos-en-la-rotacion-de-pantalla-portrait-landscape/
http://androideity.com/2011/10/06/manejando-la-rotacion-de-pantalla-en-android/

edwtron

unread,
Sep 2, 2015, 2:24:52 PM9/2/15
to desarrolladores-android

Debes tener en cuenta lo que  el amigo Eduardo Cabrera menciono:


“Cuando se rota el device, la Activity se destruye y se construye nuevamente;

por lo que hay que tomar los recaudos necesarios de salvar y reponer la info en pantalla,  

que sea conveniente en la interfaz, lo usual es valerse de unos callbacks llamados:


onSaveInstanceState()

onRestoreInstanceState()”



Y para que la actividad no se reinicio haces esto en el manifest:


android:configChanges="orientation|screenSize|keyboardHidden"


Con esto no se te recarga.



Dídac Llamas Masdeu

unread,
Sep 3, 2015, 3:30:19 AM9/3/15
to desarrolladores-android
Muchísimas Gracias a los dos Eduardo y edwtron, investigaré lo que me habéis comentado. Sabía que habría algo que se me escapaba...

El dimecres, 2 setembre de 2015 20:24:52 UTC+2, edwtron va escriure:
Reply all
Reply to author
Forward
0 new messages