DailogFragment - getArguments / setArguments -

2019-09-16 18:07发布

在官方的例子http://developer.android.com/reference/android/app/DialogFragment.html#BasicDialog片段正在与使用静态工厂方法的一个包装在一个Bundle参数和调用无参数的构造函数传递ARGS创建与setArguments(束) - 所以我的问题是 - 为什么不干脆让这些参数的公共构造? 什么是使用getArguments / setArguments片段的方法的原因 - 也许是对话不能保证每次都被重建,但重复使用? 如果这样的话,当它是怎么回事? 提前致谢。

Answer 1:

强制执行无参数,默认的构造模式允许系统动态必要时重新创建的片段。 从文档:

片段的所有子类都必须包括一个公共的空构造。 在需要的时候,尤其是在状态恢复,并需要能够找到这个构造函数初始化它的框架往往会重新实例化一个片段类。 如果空的构造不可用,会出现在某些情况下状态中恢复运行时异常。

“往往会”和“在某些情况下,”离开它模糊。 但短期满足你的好奇心......观点是的!



文章来源: DailogFragment - getArguments/setArguments - why passing arguments in a bundle?