[英]How to save presenter instance when app process is being killed
问题:尚存的应用程序进程被杀死(以正确的方式保存演示者对象实例,以便以后可以重新使用)
这是一个使用MVP体系结构的简单示例片段。
class xFragment : BaseFragment() {
private lateinit var xPresenter: xPresenter
override lateinit var xAdapter: BaseAdapter
override fun onResume() {
super.onResume()
xPresenter.view = this
xAdapter = xAdapter(
xPresenter,
this,
this
)
recyclerView.adapter = contentAdapter
}
override fun onPause() {
super.onPause()
}
override fun onDestroy() {
if (xPresenter.view != null) xPresenter.view = null
super.onDestroy()
}
override fun onDeleteButtonClicked() {
x.onDeleteButtonClicked()
}
companion object {
@JvmStatic fun createInstance(presenter: xPresenter): xFragment {
val fragment = xFragment()
fragment.xPresenter = presenter
return fragment
}
}
我读到,保存任何内容的最佳解决方案是在onPause()
,然后在onResume()
恢复。 如您所见,当我在“ createInstance”方法中创建片段时,我通过了Presenter。 应该如何保存我的xPresenter
以便以后在onResume中保留它并继续进行而没有错误?
如果您的进程被杀死,则只能还原在调用Activity.onSaveInstanceState(Bundle)期间保存在捆绑软件中的内容。 因此,您不能在实现实现Serializable / Parcelable接口之前保存演示者实例(只能将基本类型或Serializable / parcelable对象存储在bundle中)。 您可以在Activity.onCreate(Bundle)或Activity.onRestoreInstanceStateState(Bundle)中还原的所有已保存数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.