onSavedInstanceState y onRestoreInstanceState | Medio
¿Qué son onSavedInstanceState () y onRestoreInstanceState () en la actividad?
¡Hola! ¡Bienvenidos a leer mi artículo, queridos desarrolladores de Android! ¡Y querido depredador! Hoy, quiero hablar sobre el uso de las devoluciones de llamada onSaveInstanceState y onRestoreInstanceState en Activity.
En mi artículo anterior, hablé en detalle del ciclo de vida de la actividad y del paquete. Si no los conoce, puede leer mis otros artículos primero.
¡Ahora podemos volver a nuestro tema! ¿Por qué utilizar estas dos funciones de devolución de llamada?
Como puede adivinar, el evento a veces puede destruir O convertirse en reconstruir(dirección)En estos casos, podemos utilizar estas devoluciones de llamada para proteger nuestros datos.
Como yousted puede ser visto, onSaveInstanceState () El método se llama hacia adelante esta parada() método. Similar, Trasero esta En resumen() método, onSaveInstanceState () El método se llama Primero.
Con la ayuda de Atado Con estos métodos, podemos proteger nuestros datos Incluso si la actividad se destruye y se recrea.
public class MainActivity extends AppCompatActivity private TextView textView;
private Button button;
private int counter;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
textView = findViewById(R.id.counter);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
counter = counter + 1;
textView.setText("Counter: " + counter);
);
En este caso, podemos proteger fácilmente nuestros datos con la ayuda de nuestros métodos.
@Override
public void onSaveInstanceState(Bundle outState)
super.onSaveInstanceState(outState);
outState.putInt("counter", counter); @Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
super.onRestoreInstanceState(savedInstanceState);
counter = savedInstanceState.getInt("counter", 0);
¡Magia!
¡Espero que este sea un artículo útil! ¡Nos vemos en mis otros artículos! ¡Puedes ver el código completo a continuación!
package com.example.customview_example;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity
private TextView textView;
private Button button;
private int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.counter);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
counter = counter + 1;
textView.setText("Counter: " + counter);
);
@Override
public void onSaveInstanceState(Bundle outState)
super.onSaveInstanceState(outState);
outState.putInt("counter", counter);
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
super.onRestoreInstanceState(savedInstanceState);
counter = savedInstanceState.getInt("counter", 0);
textView.setText("Counter: " + counter);