我不明白我的申请中发生了什么。我的应用结构:
EventListActivity (List of events)
EventDetailActivity (Detail of selected event and button to open list of persons)
EventPersonsListActiviy (List of persons who connected to the event
EventPersonDetialActivity (Detail of selected person)
当我开始申请时,我得到了这个meminfo:
native dalvik other total limit bitmap nativeBitmap
allocated: 5257 6620 N/A 11877 N/A 28 661
在我浏览树之后,当我在EventPersonDetialActivity中时,我得到了这个
native dalvik other total limit bitmap nativeBitmap
allocated: 5690 6740 N/A 12430 N/A 149 661
但是当我从菜单中再次打开EventListActivity时。但是在开始活动之前我关闭所有最新的活动(我有一个HistoryManager,它包含一个List,当我打开一个活动时我放入列表,然后再开始主活动我调用finish()方法来活动和之后清除列表。)在onDestroy中的所有活动中,将所有变量设置为null并调用System.gc()。但我得到了这个:
native dalvik other total limit bitmap nativeBitmap
allocated: 5663 7193 N/A 12856 N/A 135 661
为什么第三种情况下的总内存使用量比第一种情况要大?虽然在内存中只有EventListActivity? 如果我回复这个方法很多,我终于失去了记忆:(
答案 0 :(得分:0)
不要手动使用所有System.gc(),它会严重影响dalvik VM的性能。让Android完成它的工作。
您是否保留对多个地方活动之间共享的任何对象的引用?
答案 1 :(得分:0)
这样做可以解决这个问题: