我在上下文感知自适应GUI领域工作,简而言之,我试图在给定条件为真时调整GUI。为了适应GUI,我将每个可能的布局作为布局XML,并且当它适应时,它加载新布局,并通过将新UI元素从新视图组移动到旧视图组来将新视图组与旧视图组合。
出于某种原因,我发现android.os.MessageQueue实例获取内存,并且每次屏幕更改后,内存都不会释放。由于我没有重新加载Activity并且只使用应用程序上下文,所以当我将GUI更改回第一个布局时,我不明白为什么没有释放内存。
我已经处理了涉及MessageQueue和Looper的其他问题,但我不明白为什么这个对象变大了。有人可以帮我吗?
更新:我想我已经解决了我的问题
我认为我的问题是我在没有让消息队列运行的情况下使每个ViewGroup脱离了上下文。因此,即使在视图应该消失之后,也不会处理消息。我发现在退出上下文之前从ViewGroup调用removeAllViews解决了这个问题。
答案 0 :(得分:0)
(问题的作者提到解决方案 - 只想添加一些细节)
有一个类似的问题:
结果:发生泄漏,似乎涉及键盘。尝试了不同的方法来避免内存泄漏。
解决方案:致电* removeAllViews"在onDestroy()帮助。
很容易发现泄漏以下是相关问题: EditText causing memory leak