在我的活动中,我有一个lateinit
名为controller
我的片段使用的属性。此属性在 中初始化Activity.onCreate()
。myFragment
将其引用返回到 my Activity
through onAttach()
。然后Fragment
调用。myActivity.controller
_Fragment.onCreate()
通常controller
首先在 中初始化Activity.onCreate()
,然后Fragment
添加 。所以这很好用。
但是当 myActivity
被杀死时,它会尝试重新创建自己及其碎片。这导致在初始化发生之前Fragment.onCreate()
被调用。Activity.onCreate()
这些是我现在看到的选项:
controller
之前初始化super.onCreate()
(如果可能的话)- 将调用移至
myActivity.controller
稍后的生命周期回调,如onViewCreated()
::controller.isInitialized
Kotlin 1.2中可用的东西
我在这里最好的选择是什么?