android - MutableContextWrapper 有多安全

标签 android webview memory-leaks mutable-context-wrapper

在内存泄漏等方面使用 Android 的 MutableContextWrapper 有多安全?我正在用 Activity 的上下文实例化一个 WebView,稍后想将其上下文更改为另一个 Activity

Here是一个警告对 WebView 使用 MutableContextWrapper 的答案,因为它可能会导致混合上下文泄漏。但是我没有看到任何理由,因为当我们改变它的上下文时它怎么会导致泄漏? 为什么我们不应该在 View 初始化后更改它的上下文?

有没有人使用过并遇到过任何问题(特别是WebView)?使用过程中有什么注意事项吗?有什么数据可以分享吗?

最佳答案

绝对不安全。 Context 上的操作需要反操作才能释放资源,例如Context.registerComponentCallabacksContext.registerReceiver,如果你同时改变了Context,这意味着初始上下文不会调用反作用,导致resource泄漏。而 WebView 使用这些操作,这是肯定的。

请注意,WebView 是一个比常规 View 复杂得多的组件,因为它包含网络堆栈、渲染引擎等。

关于android - MutableContextWrapper 有多安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34380647/

相关文章:

java - 通过 USB 将数据发送到 Android 应用程序

Android WebView.enableSlowWholeDocumentDraw() 方法抛出错误

android - 如何禁用 WebView 中的垂直和水平滚动?

linux - 内存泄漏会导致我的进程被杀死吗?

安卓网络服务

android - 非常基本的 LoaderTestCase 卡在 getLoaderResultSynchronously 中

java - 设置首选项(在 PreferenceFragment 内)响应单击

ios - 在 Swift 中从 webview 中删除部分

c++ - CString 的动态 3 维数组中的内存泄漏

c# - 是否有一个 .Net 内存分析器可以跟踪大对象堆上的所有分配?