我已经阅读了一些文章和答案(包括这篇),涉及到废弃的代码,但我有些困惑如何处理(具体来说)被弃用的 Fragment
事件处理程序 onInflate
。
我已经替换了我的实现
public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState)
与,用
public void onInflate(Context context, AttributeSet attrs, Bundle savedInstanceState)
如果我在小于API23的设备上运行我的应用程序,则不会调用替换代码。
如果我恢复原始已弃用的代码(这样我现在有两种实现方法),则调用已弃用的代码,正确的功能返回,但是现在正在调用已弃用的方法(?)。
当我在API23的设备上运行应用程序时,似乎两个处理程序版本都被调用。
那么问题是,这里发生了什么?如果我编写的代码旨在在API23和更早版本上运行,那么我需要实现已弃用的方法以及新方法吗?
如果是这种情况,我是否需要寻找并实施其他“已弃用”的方法,以防万一?(因此,是否有这些“向后兼容”所需的弃用方法列表?)
更新:
我现在已经从使用android.app.Fragment更改为android.support.v4.app.Fragment(即从本机片段到支持片段),应用程序现在按预期执行,所有版本都运行替换处理程序代码,并且正在按预期遍历android源。
但问题仍然存在:为什么?本机android.app.Fragment
实现出了问题吗?回顾早期的问题,这个问题在2015年9月就被讨论了。所以为什么这仍然是一个问题?为什么应API 11后支持和本地片段的实现会有差异?