在使用Android手机一个很重要的用户体验是比如:编写短信时如果来了一个电话之后,在挂完电话回到短信界面应该还会有之前未编写完的短信,否则需要重新输入,那么如何实现这个功能呢?

  • 马上学Android 018 - 如何保存和恢复Activity的状态

onCreate()的参数Bundle savedInstancState是用于保存Activity的状态

保存Activity的状态使用的方法是:

1
2
3
4
5
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("count", count);
}
1
2
3
4
5
6
7
8
9
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);

if (savedInstanceState != null) {
count = savedInstanceState.getInt("count");
Toast.makeText(this, "count = " + count, Toast.LENGTH_SHORT).show();
}

第一次启动时savedInstanceState为null,如果只想过onSaveInstanceState()那么savedInstanceState则不为空

保存的数据可以使用outState.putXXX,XXX为对应类型的数据