开发APP关于Activity数据的保存和恢复方法详解:
临时保存数据和恢复数据
在以下场景需要临时保存当前Activity使用的一些数据。手机横竖屏模式切换时。用户点击“hom”键,把当前界面切换到后台时。手机锁屏时。从当前Activity跳到另一个Activity,但不销毁之前的Activity时。Activity类提供了onSaveInstanceState(BundleoutState)方法保存数据,onRestoreInstanceState(BundlesavedInstanceState)方法恢复数据。在使用onSaveInstanceState方法时需要注意:当用户点击“返回”按钮、“返回”键或者调用了finish()方法退出Activity时,不会调用该方法。该方法一定是在onStop方法之前调用,但是不确定是在onPause方法之前还是之后调用。对于定义了id的视图控件,系统在调用onSaveInstance方法的时候,会自动保存视图控件的状态。在Android源码中,有相关说明,如图12-1所示。
onRestoreInstanceState方法在onStart方法之后、onResume方法之前被调用。
持久保存数据和恢复
数据用户点击屏幕左上角的“返回”按钮或点击“返回”键退出Activity的时候,有时需要持久保存数据。为了改善用户体验,最好先显示提示框,提醒用户是否要保存当前界面数据,用户选择是,再执行保存数据的代码。点击“返回”按钮时,代码如下:@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){ finalintid=item.getItemId(); if(android.R.id.home==id){ isSaveData(); returntrue; } returnsuper.onOptionsItemSelected(item);}点击“返回”按键时,代码如下:
@OverridepublicvoidonBackPressed(){ isSaveData();}onPause()和onResume()两个方法在Activity的生命周期中一定会调用到的,所以无论是临时保存数据还是持久保存数据,在onPause()方法中保存数据、在onResume()方法中恢复数据是最保险的做法。好了,APP开发公司本文关于“Activity数据的保存和恢复方法详解”知识就分享到这里,谢谢关注,博纳网络编辑整理。