查看层次结构如下TabActivity
→ActivityGroups
→Activities
。InputMethodManager保存对tabhost的引用 - 内存泄漏 - OOM错误
使用MAT我发现TabWidget
由TabHost
这是由InputMethodManager
引用引用,因此TabWidget
泄漏。 On随后启动应用程序OutOfMemory错误。
同样我所有的活动也由InputMethodManager
引用。
上正常完成应用程序(击中返回键)(关闭我所有的活动组,活动,tabactivity,tabhost和tabwidget被泄露!!申请后),以下是显示在logcat的
WARN/InputManagerService(99):在非聚焦客户[email protected]开始输入(UID = 10052 PID = 1463)
如何从InputMethodManager
删除引用.. 。?
事情我想:
A.调用此方法我TabActivity
1. myTabWidget.removeAllViews()
2. myTabWidger.invalidate()
没有运气的onDestroy
!
我不指InputMethodManager反正。你能给我提供更多关于“模式观察者”的链接吗? – Mani 2011-10-24 13:29:58
http://en.wikipedia.org/wiki/Observer_pattern 我们创建了一个模型作为Observable(Subject),并且Activities是Observers(他们实现了接口“Observer”)。开始时,活动在模型中注册(我们使用单例,但可以使用服务或应用程序)。如果有一些有趣的事情,可观察的事件触发事件并通知每一位客户。在销毁之前,Activity在Observable中未注册以避免内存泄漏。 Android中大部分内存泄漏的原因非常简单:Context/View/Dialog在某处被声明为静态方法。 – QuickNick 2011-10-25 07:17:52