将SDK更新到API级别23后,我发现不推荐onAttach (Activity activity)
,新方法为onAttach (Context context)
。任何人都可以告诉我为什么要做出这种改变?
答案 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聊天工作的方式,他们可能会在活动之外浮动片段。