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

nvi*_*tty 10 android android-activity

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

aro*_*ire 5

我认为基本上是扩大了方法的范围,但官方的changelog并没有对此进行任何说明。

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

正如Richq评论的那样,Fragment支持版本也弃用了 onAttach(Activity) 并且有一个 onAttach(Context) 可以在所有 Android 版本上使用,回到史前版本。

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

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

  • 此举是在代码onAttach的方法onCreate之一,因为它仍然得到执行。

通过此修改,应用程序将像以前一样运行。不需要额外的导入语句。

  • @arodriguezdonaire 这并没有回答“为什么?”的问题。关于“如何修复代码?”还有其他更相关的问题。与这一变化有关。“我认为它基本上已经扩大了范围的方法”表明您现在可以附加的不仅仅是活动,而是如何以及在哪里? (2认同)