我有一个应用程序,我一直以为它可以工作,直到有人试图在一台内存很小的超便宜的平板电脑上运行它。我确信内存不足是问题所在,但我有两个问题: 1)我做的事情是否消耗了内存;2)当我耗尽内存时该怎么办。
这是我的应用程序架构:我的应用程序包含一个主活动,它依次调用许多子活动来获取用户输入。在应用程序的生命周期中,每个子活动可能会被调用几次。每个附属活动都由一个startActivityForResult调用调用。当子活动完成它的工作后,它将把任何结果放入一个Intent中,并调用finish()。回到主活动中,onActivityResult检测子活动已经完成,处理返回的数据,然后调用下一个子活动。
我做错什么了吗?具体地说,当我完成一个辅助活动时,它的所有数据都会从内存中清除吗?如果我再次调用相同的子活动,我是否必须做一些特殊的事情来避免将活动数据的重复副本加载到内存中?
在低内存系统上运行我的应用程序时,我在Android监视器中看到以下消息:
“内存不足。”
然后,我看到多达七次“执行停止未恢复的活动”(这是什么意思?)
“此窗口已丢失”
然后是另一个“执行未恢复的活动的停止”
“启动活动时出现异常。Android.os.DeadObjectException”(那是什么?)
“此窗口已丢失”
然后我的应用就会死掉。
我的诊断是否正确,这是记忆问题?我的架构会导致内存泄漏吗?我能做些什么来纠正这个问题?
感谢您的帮助。
Kind向Keith致敬
发布于 2017-03-15 16:12:24
运行应用程序的高端设备上的空闲内存,第一列最后一行的值是应用程序未运行的低端设备上的consumption.
https://stackoverflow.com/questions/42796758
复制相似问题