当一个ActivityA进入onStop
状态,ActivityB处于onResume
状态,此时ActivityA可能被系统回收,但再次返回ActivityA时,重新执行onCreat()
函数,以前的数据已经没了,为了解决这个问题,可以覆写onSaveInstanceState()
回调方法这个方法可以保证在Activity被回收之前一定会被调用。通过参数保存数据:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
val tempData = "Some Info"
outState.putString("data_key", tempData)
}
然后在onCreat()
函数中恢复数据
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.first_layout)
if(savedInstanceState != null){
val tempData = savedInstanceState.getString("data_key")
}
}