gpt4 book ai didi

android - InputMethodManager 持有对 tabhost 的引用 - 内存泄漏 - OOM 错误

转载 作者:IT王子 更新时间:2023-10-28 23:31:25 24 4
gpt4 key购买 nike

View 层级如下TabActivity -> ActivityGroups -> Activity.

使用 MAT 我发现 TabWidgetTabHost 引用,而 InputMethodManager 又被引用,因此 >TabWidget 泄露。在随后启动应用程序时抛出 OutOfMemory 错误。

同样,我的所有 Activity 也被 InputMethodManager 引用。(关闭应用程序后,我所有的 Activity 组、 Activity 、tabactivity、tabhost 和 tabwidget 都泄露了!!)

关于正确完成应用程序(回击键),logcat中显示如下

WARN/InputManagerService(99): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@44a87748 (uid=10052 pid=1463)

如何从 InputMethodManager...中删除引用?

我尝试过的事情:

A.调用了我的 TabActivity
的这个方法 onDestroy1. myTabWidget.removeAllViews()
2. myTabWidger.invalidate()

运气不好!


最佳答案

我也遇到了这个问题,我尝试了一些方法来避免它。当我的 Activity 完成后,我尝试切断与输入法管理器服务的连接。看看吧:

class MyActivity extend Activity {
@Override
public void finish() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.windowDismissed(mContentView.getWindowToken());
super.finish();
}
}

我不确定这是否可以解决此内存泄漏问题。目前,它工作正常。你可以试一试。

关于android - InputMethodManager 持有对 tabhost 的引用 - 内存泄漏 - OOM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com