您的位置:首页 > 移动开发

APP开发实战155-Activity数据保存和恢复

2017-02-20 22:49 211 查看

16.3 Activity数据保存和恢复

16.3.1临时保存数据和恢复

在以下场景需要临时保存当前Activity使用的一些数据:

1 手机横竖屏模式切换时

2 用户点击home键,把当前界面切换到后台时

3 手机锁屏时

4 从当前Activity跳到另一个Activity,但不销毁之前的Activity时

 

Activity类提供了onSaveInstanceState(BundleoutState)函数保存数据,onRestoreInstanceState (BundlesavedInstanceState)函数恢复数据。

 

onSaveInstanceState函数使用注意事项 :

当用户点击返回按钮、返回键或者调用了finish() 方法退出Activity时,不会调用该方法。

该函数一定是在onStop方法之前调用,但是不确定是在onPause方法之前还是之后调用。

对于定义了id的视图控件,在调用onSaveInstance函数的时候,会自动保存视图控件的状态。

在Android源码中,有如下说明:

onRestoreInstanceState函数在onStart函数之后,onResume函数之前被调用。 

16.3.2持久保存数据和恢复

用户点击屏幕左上角的返回按钮或点击返回键完全退出Activity的时候,有时需要持久保存数据;为了改善用户体验,最好先显示提示框,提醒用户是否要保存当前界面数据,用户选择是,再执行保存数据的代码。

点击返回按钮时,代码如下:

@Override

public boolean onOptionsItemSelected(MenuItem item) {

final int id = item.getItemId();

    if (android.R.id.home == id) {

        isSaveData();

        return true;

      }

 

      return super.onOptionsItemSelected(item);

}

 

点击返回按键时,代码如下:

@Override

public void onBackPressed(){

isSaveData();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: