Android保存及恢复Activity的状态

时间:2022-06-01 18:36:51

Android保存Activity状态有两种方式:activity保存以及持久化保存。

这里主要介绍activity保存。

保存Activity状态

基于Activity保存状态需要重写onSaveInstanceState(Bundle savedInstanceState)方法。

示例:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  savedInstanceState.putBoolean("isLogged", true);
  savedInstanceState.putInt("count", 1);
  savedInstanceState.putString("message", "欢迎回来");
}

savedInstanceState Bundle类提供了键值对的方法存放特定类型的数据,如例子里的putInt(),putBoolean()等等。

恢复Activity状态

恢复Activity状态,主要是在onCreate()方法或onRestoreInstanceState()把onSaveInstanceState()存放的值取出来。

示例:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  boolean isLogged= savedInstanceState.getBoolean("isLogged");
  int count= savedInstanceState.getInt("count");
  String message = savedInstanceState.getString("message");
}