Actividad en Android
Qué es una actividad?
Aplicaciones en Android (Plataforma Moodle)
4.- Actividades y su ciclo de vida
Codelab: Etapas del ciclo de vida de la actividad
Actividad:
Ciclo de vida:
Ejemplo de ciclo de vida:
5.- Guardar el estado de una Actividad

Enlace: Guardar el estado de una actividad
Aplicación Estados:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/texto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.139" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="31dp"
android:text="Duplicar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/texto"
app:layout_constraintVertical_bias="0.086" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.estados;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
String tag = "MainActivity";
private int contador = 1;
TextView texto;
Button boton;
//Cuando se crea la activity 1º Paso. donde se suele hacer la iniciar acciones de los componentes, cargar layaut , configurar
//Componentes, etc..
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(tag,"onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
texto = (TextView) findViewById(R.id.texto);
boton = (Button) findViewById(R.id.button);
boton.setOnClickListener(this);
texto.setText(String.valueOf(contador));
}
@Override
public void onClick(View view) {
contador = contador * 2;
texto.setText(String.valueOf(contador));
}
/*
@Override protected void onSaveInstanceState(Bundle estado){
super.onSaveInstanceState(estado);
estado.putInt("posicion", contador);
}
@Override protected void onRestoreInstanceState(Bundle estado){
super.onRestoreInstanceState(estado);
contador = estado.getInt("posicion");
texto.setText(String.valueOf(contador));
}
*/
//Cuando volvemos a tener la pantalla en foco después de pasar de estado onStop()
@Override
protected void onStart() {
Log.d(tag,"onStart");
super.onStart();
}
//La activity se sigue viendo en pantalla pero hay algo que la esta bloqueando.
@Override
protected void onResume() {
Log.d(tag,"onResume");
super.onResume();
Toast.makeText(this, "Mensaje al usuario", Toast.LENGTH_LONG).show();
}
//Lo contrario de onResume(), cuando vuelve a estar preparada.
@Override
protected void onPause() {
Log.d(tag,"onPause");
super.onPause();
}
//cuando la aplicación va a segundo plano, cuando le damos al botón de home, si nos movemos a otra aplicación, etc.. estado dormido
@Override
protected void onStop() {
Log.d(tag,"onStop");
super.onStop();
}
//Cuando la activity se destruye y entes de destruir la aplicación(tanto por el sistema para dejar memoria o recursos
//libre, como cierre de la aplicación o activity)
@Override
protected void onDestroy() {
Log.d(tag,"onDestroy");
super.onDestroy();
}
}
MainActivity.kt
package com.example.estados
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class MainActivity : AppCompatActivity(), View.OnClickListener {
var tag = "MainActivity"
private var contador = 1
// var texto: TextView? = null
lateinit var texto: TextView
// var boton: Button? = null
lateinit var boton: Button
//Cuando se crea la activity 1º Paso.
// onde se suelen hacer las acciones de iniciar los componentes, cargar layout, configurar componentes, etc..
override fun onCreate(savedInstanceState: Bundle?) {
Log.d(tag, "onCreate")
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
texto = findViewById<View>(R.id.texto) as TextView
boton = findViewById<View>(R.id.button) as Button
boton.setOnClickListener(this)
texto.text = contador.toString()
}
override fun onClick(view: View) {
contador = contador * 2
texto.text = contador.toString()
}
/*
@Override protected void onSaveInstanceState(Bundle estado){
super.onSaveInstanceState(estado);
estado.putInt("posicion", contador);
}
@Override protected void onRestoreInstanceState(Bundle estado){
super.onRestoreInstanceState(estado);
contador = estado.getInt("posicion");
texto.setText(String.valueOf(contador));
}
*/
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("posicion", contador)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
contador = savedInstanceState.getInt("posicion")
texto.text = contador.toString()
}
//Cuando volvemos a tener la pantalla en foco después de pasar de estado onStop()
override fun onStart() {
Log.d(tag, "onStart")
super.onStart()
}
//La activity se sigue viendo en pantalla pero hay algo que la esta bloqueando.
override fun onResume() {
Log.d(tag, "onResume")
super.onResume()
Toast.makeText(this, "Mensaje al usuario", Toast.LENGTH_LONG).show()
}
//Lo contrario de onResume(), cuando vuelve a estar preparada.
override fun onPause() {
Log.d(tag, "onPause")
super.onPause()
}
//cuando la aplicación va a segundo plano, cuando le damos al botón de home, si nos movemos a otra aplicación, etc.. estado dormido
override fun onStop() {
Log.d(tag, "onStop")
super.onStop()
}
//Cuando la activity se destruye y entes de destruir la aplicación(tanto por el sistema para dejar memoria o recursos
//libre, como cierre de la aplicación o activity)
override fun onDestroy() {
Log.d(tag, "onDestroy")
super.onDestroy()
}
}

Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.