dum*_*azy 6 android android-fragments kotlin kotlin-lateinit
在我的Activity中,我有一个lateinit名为controllerFragment使用的属性.此属性已初始化Activity.onCreate().我Fragment得到它的参考回到我Activity通过onAttach().在Fragment随后调用myActivity.controller在Fragment.onCreate().
通常controller首先在其中初始化Activity.onCreate(),然后Fragment添加.所以这很好用.
但是当我Activity被杀死时,它会试图重建自己及其碎片.这导致在初始化发生之前Fragment.onCreate()被调用.Activity.onCreate()
这些是我现在看到的选项:
controller之前初始化super.onCreate()(如果可能的话)myActivity.controller到以后的生命周期回调,如onViewCreated()::controller.isInitializedKotlin 1.2中提供的东西这是我最好的选择?
通过回顾Fragment生命周期,事实上最安全的做法就是#onActivityCreated(android.os.Bundle).
即使#onAttach()看起来它被Fragment附加到它时被调用Activity,我也不确定这是否完全有保证,因为旧#onAttach(android.app.Activity)的已被弃用,并且#onAttach(android.content.Context)建议使用新的.
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |