我想知道在Android应用中旋转时是否存在保存自定义类的方法。 我想保存所有被调用的MatrixGame类的实例对象...有人可以帮助我吗?
由于
答案 0 :(得分:1)
您应该序列化您的对象。您可以实施Parcelable
或实施Serializable
(Parcelable
快几倍)。然后,您就可以将其放在Bundle
onSaveInstanceState
中,并在onCreate
或onRestoreInstanceState
中恢复。
此外,您可以将对象序列化为String
,例如json字符串。
另一种选择是将对象存储在数据库或文件中。这取决于你的需求。
如果您不想在屏幕旋转上重新创建此对象,可以通过在Activity
中添加配置更改标记来更改AndroidManifest.xml
的生命周期。如果我们在讨论Fragment
,您可以调用setRetainInstance(true)
以避免在轮播时重新进行片段重新创建。
答案 1 :(得分:1)
由于Fragment生命周期是独立的 - 当您使用Fragment时,您可以设置它以便在配置更改时不会被销毁。
正如您所注意到的,当您旋转应用程序(或应用其他配置更改)时,Activity类会被销毁并重新创建,如果您想要持久保存Activity状态,您可以使用sqlite并在{{保存所需的任何内容1}}方法。然后在onPause()
方法中检查DB的最后已知状态。
如果你想避免保存状态"永远" (意思是,用户关闭应用程序,明天当她重新开启时 - 你想重新开始并且不加载上一个已知状态)你可以添加一个时间戳并设置一个阈值,如果通过后,数据被认为是陈旧的并被忽视。
两条评论:
onCreate()