Android 为什么';t片段直接实现其关联的活动';方法,而不是使用接口?

Android 为什么';t片段直接实现其关联的活动';方法,而不是使用接口?,android,android-fragments,Android,Android Fragments,我在读书 它写道: 要允许片段与其活动进行通信,可以定义 Fragment类中的接口,并在 活动。片段在执行过程中捕获接口 它的onAttach()生命周期方法,然后可以调用接口 方法,以便与活动进行通信 我的问题是: 为什么片段不直接实现其关联活动的方法,而不是使用接口? 使用接口作为片段及其相关活动之间的媒介有什么好处 例如,另一种通信方式是:在Fragment类的onListItemClick()中,我可以直接使用activity.onArticleSelected(位置),而不是mCal

我在读书

它写道:

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

我的问题是:

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


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

在某些情况下,片段可能会与活动失去关联。我在使用文件选择器时遇到了一个特殊的异常。在这种情况下,您无法根据片段找到任何活动。因此Google可能希望您只在片段的onAttach()生命周期中做正确的事情。

因为Java不支持分部类,就像C一样,谢谢。很抱歉,我不了解部分课程。据我所知,另一种通信方式是:在Fragment类的onListItemClick()中,我可以直接使用activity.onArticleSelected(position),而不是mCallback.onArticleSelected(position);我也想知道这件事。我猜这是因为片段被设计成模块化的、可重用的组件。片段的生命周期与活动的生命周期相似,但不完全相同。由于它们可以在活动生命周期中的任何给定时间被删除、替换等,因此首先将数据传递给活动,然后再传递给需要数据的任何其他片段更为合理。希望我们能对此有更多的了解。谢谢。但是,片段中的mCallback仍然取决于活动的生命周期。所以我看不出有什么不同。