我有一个由
创建的视图this.vehicleListUI = new GameUIVehicleList();
this.vehicleListUI.attachGameEngine(myGameEngine);
这项工作对于android销毁并恢复视图。
Android可以使用空构造函数重新创建视图,
但我的问题是这个问题GameUIVehicleList
将工作我大多数也有myGameEngine
对象设置为GameUIVehicleList
myGameEngine
不是可序列化的,不能是这个(是UI的一部分)
这样就可以通过重新附加myGameEngine
对象来完全恢复我的View
到创建视图。
这对于将大量“new GameUIVehicleList()”添加到XML布局文件中也很有用。
修改
我不知道这是否有所帮助但是我从头开始遇到这个问题
我使用android.support.v4.app.FragmentActivity
并继续销毁和重新创建
我的View对象。我还可以通过覆盖android.support.v4.app.FragmentActivity
中的一些方法来修复此问题,同时调用FragmentActivity
重新创建/创建一个片段,并为此设置我的Activity中包含需要数据的需要值。
答案 0 :(得分:2)
销毁和重新创建活动(和视图)通常发生在配置更改(最常见的是屏幕方向更改)上。您可能需要检查this article是否有帮助,而onRetainNonconfigurationInstance() / setRetainInstance()
无法解决您的问题。
答案 1 :(得分:0)
如果myGameEngine
不是Serializable
或Parcelable
,我认为无法可靠地执行此操作。
但是如果没问题,有时候myGameEngine
有时无法恢复,你可以使用自己的自定义Application
类扩展MyApplication
类,该类包含变量myGameEngine
然后在onCreate
中,您可以获得保存在应用程序上下文中的myGameEngine
。
MyApplication app = (MyApplication) this.getApplicationContext();
this.vehicleListUI.attachGameEngine(app.myGameEngine);