Android tips #2 存储和恢复activity的状态

本文介绍如何通过覆盖 onSaveInstanceState 方法并使用 Bundle 参数来保存应用程序的状态,包括布尔值、双精度浮点数、整数和字符串等类型的数据。此外,还介绍了如何在 onRestoreInstanceState 中从 Bundle 恢复这些状态。

You need to override onSaveInstanceState(Bundle savedInstanceState) and write the application state values you want to change to the Bundle parameter like this:

@Override

public void onSaveInstanceState ( Bundle savedInstanceState ) {
 
// Save UI state changes to the savedInstanceState.
 
// This bundle will be passed to onCreate if the process is
 
// killed and restarted.
  savedInstanceState
. putBoolean ( "MyBoolean" , true );
  savedInstanceState
. putDouble ( "myDouble" , 1.9 );
  savedInstanceState
. putInt ( "MyInt" , 1 );
  savedInstanceState
. putString ( "MyString" , "Welcome back to Android" );
 
// etc.
 
super . onSaveInstanceState ( savedInstanceState );
}

The Bundle is essentially a way of storing a NVP map, and it will get passed in to onCreate and also onRestoreInstanceState where you'd extract the values like this:

@Override

public void onRestoreInstanceState ( Bundle savedInstanceState ) {
 
super . onRestoreInstanceState ( savedInstanceState );
 
// Restore UI state from the savedInstanceState.
 
// This bundle has also been passed to onCreate.
 
boolean myBoolean = savedInstanceState . getBoolean ( "MyBoolean" );
 
double myDouble = savedInstanceState . getDouble ( "myDouble" );
 
int myInt = savedInstanceState . getInt ( "MyInt" );
 
String myString = savedInstanceState . getString ( "MyString" );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值