MutableContextWrapper 有多安全
How safe is MutableContextWrapper
Android 的 MutableContextWrapper
在内存泄漏等方面的使用安全性如何?我正在用 Activity
的上下文实例化 WebView
,稍后想将其上下文更改为另一个 Activity
。
Here 是一个警告对 WebView
使用 MutableContextWrapper
的答案,因为它可能会导致混合上下文泄漏。但是我没有看到任何理由,因为当我们改变它的上下文时它怎么会导致泄漏?
为什么我们不应该在视图初始化后更改它的上下文?
有没有人用过并遇到过任何问题(特别是WebView
)?使用过程中有什么注意事项吗?有这方面的资料分享吗?
绝对不安全。 Context
上的操作需要反操作才能释放资源,例如Context.registerComponentCallabacks
、Context.registerReceiver
,如果同时更改了Context,则意味着不会为初始上下文调用反动作,从而导致资源泄漏。而WebView就用到了这些action,那是肯定的
请注意,WebView 是一个比常规 View 复杂得多的组件,因为它包含网络堆栈、渲染引擎等。
Android 的 MutableContextWrapper
在内存泄漏等方面的使用安全性如何?我正在用 Activity
的上下文实例化 WebView
,稍后想将其上下文更改为另一个 Activity
。
Here 是一个警告对 WebView
使用 MutableContextWrapper
的答案,因为它可能会导致混合上下文泄漏。但是我没有看到任何理由,因为当我们改变它的上下文时它怎么会导致泄漏?
为什么我们不应该在视图初始化后更改它的上下文?
有没有人用过并遇到过任何问题(特别是WebView
)?使用过程中有什么注意事项吗?有这方面的资料分享吗?
绝对不安全。 Context
上的操作需要反操作才能释放资源,例如Context.registerComponentCallabacks
、Context.registerReceiver
,如果同时更改了Context,则意味着不会为初始上下文调用反动作,从而导致资源泄漏。而WebView就用到了这些action,那是肯定的
请注意,WebView 是一个比常规 View 复杂得多的组件,因为它包含网络堆栈、渲染引擎等。