【发布时间】:2021-03-17 19:49:04
【问题描述】:
我已经完成了我的尽职调查并检查了关于 SO 的所有答案,纳入了建议,但由于某种原因,没有调用保存和恢复的方法。
一个答案建议我应该在活动级别保存以便调用片段保存状态,所以这是我的活动
class MyActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.my_layout)
supportActionBar?.title = "My App"
}
// not called
override fun onSaveInstanceState(outState: Bundle, outPersistentState: PersistableBundle) {
super.onSaveInstanceState(outState, outPersistentState)
}
// not called
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
}
// not called
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
}
}
我的片段如下。
class MyFragment: Fragment() {
// savedInstanceState is null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
// savedInstanceState is null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
}
// not getting called.
override fun onSaveInstanceState(bundle: Bundle) {
super.onSaveInstanceState(bundle)
bundle.putSerializable("users", arrayListOf()) // user array
}
}
所以不确定我在这里缺少什么来保存和恢复状态。
我如何测试?我按返回按钮返回主屏幕,将应用程序推到后台,然后将其带到前台。
【问题讨论】:
标签: android kotlin android-activity fragment state