为什么onAttach(活动活动)不推荐?

在将SDK更新到API级别23后,我发现onAttach (Activity activity)已被弃用,并且新方法在onAttach (Context context) 。 任何人都可以启发我为什么做这个改变吗?

Solutions Collecting From Web of "为什么onAttach(活动活动)不推荐?"

我认为这基本上是扩大了方法的范围,但官方的更新日志并没有说什么。

正如你在void onAttach(Activity)日志中看到的那样,他们已经删除了void onAttach(Activity)void onAttach(Activity)但是他们添加了一个新名称,并且在Android官方文档中已经弃用了。

正如richq所评论的, Fragment的支持版本也不赞成onAttach(Activity),并且有一个onAttach(Context),可以在所有的Android版本上使用,直到史前版本。

要适应这个新的更改,您可以按照以下步骤操作:

  • 将onAttachcallback的参数types从Activity更改为Context 。 由于未知的原因,这种修改导致在片段生命周期中onAttach(Context)方法不再被调用。

  • onAttach方法中的代码移动到onCreate因为它仍然被执行。

有了这个修改,应用程序就像以前一样运行。 没有额外的import陈述是必需的。

在这个变化发生之前,一个片段只能被附加到一个活动上。 在这个变化之后,Google也可以将片段附加到服务上。 就像Facebook聊天头的工作方式一样,他们也可以在活动之外进行分组。