为什么Fragment不直接实现其关联活动的方法,而不是使用接口?

时间:2012-12-19 04:18:16

标签: android android-fragments

我正在阅读"Communicating with Other Fragments"

它写道:

  

要允许片段与其活动进行通信,您可以定义   Fragment类中的一个接口,并在其中实现它   活动。 Fragment捕获了接口实现   它的onAttach()生命周期方法然后可以调用接口   方法,以便与活动进行沟通。

我的问题是:

为什么Fragment不直接实现其关联活动的方法,而不是使用接口? 将接口用作Fragment及其相关活动之间的媒体有什么好处?

例如,另一种通信方式可以是:在Fragment类中,在onListItemClick()中,我可以直接使用activity.onArticleSelected(position),而不是mCallback.onArticleSelected(position);

1 个答案:

答案 0 :(得分:0)

在某些情况下,片段可能会失去与活动的关联。我在使用文件选择器时遇到了特殊的例外情况。在这种情况下,你根据片段找不到任何活动。所以谷歌可能希望你做对了事物只在片段的onAttach()Taclifecycle。