我正在阅读"Communicating with Other Fragments"
它写道:
要允许片段与其活动进行通信,您可以定义 Fragment类中的一个接口,并在其中实现它 活动。 Fragment捕获了接口实现 它的onAttach()生命周期方法然后可以调用接口 方法,以便与活动进行沟通。
我的问题是:
为什么Fragment不直接实现其关联活动的方法,而不是使用接口? 将接口用作Fragment及其相关活动之间的媒体有什么好处?
例如,另一种通信方式可以是:在Fragment类中,在onListItemClick()中,我可以直接使用activity.onArticleSelected(position),而不是mCallback.onArticleSelected(position);
答案 0 :(得分:0)
在某些情况下,片段可能会失去与活动的关联。我在使用文件选择器时遇到了特殊的例外情况。在这种情况下,你根据片段找不到任何活动。所以谷歌可能希望你做对了事物只在片段的onAttach()Taclifecycle。