为什么onAttach(活动活动)已弃用?

时间:2015-09-04 08:35:42

标签: android android-activity

将SDK更新到API级别23后,我发现不推荐onAttach (Activity activity),新方法为onAttach (Context context)。任何人都可以告诉我为什么要做出这种改变?

2 个答案:

答案 0 :(得分:4)

我认为它基本上是扩大了方法的范围,但官方changelog没有说明任何内容。

正如您在更改日志中所看到的,他们已删除了void onAttach(Activity),但他们添加了一个名称相同的新文件,并且表示已在Android Official Documentation中弃用。

richq评论时,support version of Fragment也弃用onAttach(Activity)并且有一个onAttach(Context),可以在所有Android版本上使用,直接回到史前版本。

要适应这些新变化,您可以按照以下步骤操作:

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

  • onAttach方法中的代码移至onCreate,因为它仍然执行。

通过此修改,应用程序将像以前一样运行。不需要额外的进口声明。

答案 1 :(得分:2)

在此更改发生之前,片段只能附加到活动。在此更改之后,Google可以努力将片段附加到服务。像Facebook聊天工作的方式,他们可能会在活动之外浮动片段。