roc*_*cko 6 android android-fragments
我有一个活动,用户可以从一个片段进展到另一个片段.片段启动,下载一些数据并显示它(以及从资源中绘制一些图标等).用户可以继续向前移动片段,直到他们喜欢(直到他们感到无聊?).
问题是,OutOfMemoryError最终会发生(在32mb vm堆上大约90个片段之后).90看起来确实很多,但我在现场看到了这样的内存错误报告,所以这可能是在低端设备上发生的.我确保我在onCreateView中创建的任何视图都在onDestroyView中无效.我的片段所拥有的唯一其他对象(据我所知)是它在开始时下载的数据,通常只有10-50kb.
我的第一个问题是,这是正常的吗?我可以期望'只'能够在后栈中拥有~90个片段吗?或者我在某个地方有内存泄漏,我可以做些什么?
如果用户离开我的应用程序,并且Android决定终止整个进程以释放内存,那么当用户返回使用的内存时,由于整个状态已从bundle恢复,因此更少.如果用户然后反向通过后栈,那么当然每个片段都是从savedinstancestate创建/恢复的.
所以我的第二个问题是,有没有办法强迫这种情况发生?即,'如果后面的堆栈中有> 50个碎片,那么开始杀死底部的碎片到savedInstanceState?'
Hos*_*BAR -6
AndroidManifest.xml在你的in标签中试试这个<Application>:
android:largeHeap="true"
Run Code Online (Sandbox Code Playgroud)
并提供您的代码以提供更多帮助。
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |