[英]Android, View lifecycle and restore
我有一个创建的视图
this.vehicleListUI = new GameUIVehicleList();
this.vehicleListUI.attachGameEngine(myGameEngine);
这个工作鳍到android销毁并恢复视图。 Android可以通过使用空构造函数重新创建视图,但我的问题是这个GameUIVehicleList
将工作我大多数也将myGameEngine
对象设置为GameUIVehicleList
myGameEngine
不是Serializable,不能是这个(是UI的一部分)
通过将myGameEngine
对象重新附加到创建视图,可以完全恢复我的View。 这对于将大量“新GameUIVehicleList()”转换为XML布局文件也很有用。
编辑:
我不知道这是否有一些帮助,但是我从头开始遇到这个问题的方法是我使用android.support.v4.app.FragmentActivity
并继续销毁并重新创建我的View对象。 我也可以通过覆盖android.support.v4.app.FragmentActivity
中的一些方法来解决这个问题,这是在FragmentActivity
重新创建/创建一个片段时调用的,并为此设置了我的Activity中需要保存需求数据的值。
销毁和重新创建活动(和视图)通常发生在配置更改(最常见的是屏幕方向更改)上。 您可能想要检查本文是否有帮助,而onRetainNonconfigurationInstance() / setRetainInstance()
不能解决您的问题。
如果myGameEngine
不是Serializable
或Parcelable
,我不相信这是能够可靠地做到这一点。
但是如果myGameEngine
,有时候myGameEngine
无法恢复,你可以使用自己的自定义MyApplication
类扩展Application
类,该类包含变量myGameEngine
然后在你的onCreate
你可以获得保存在应用程序上下文中的myGameEngine
。
MyApplication app = (MyApplication) this.getApplicationContext();
this.vehicleListUI.attachGameEngine(app.myGameEngine);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.