Mar*_*hun 25 android out-of-memory android-intent activity-finish
喜欢:
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
没有调用finish() explicitly, onDestroy()就没有调用前Activity,而我的内存耗尽(OutOfMemory Exception).
所以,打电话是个好主意 finish() explicitly to prevent OutOfMemory Exception?
Ted*_*opp 32
当您启动新活动时,当前活动将被推送到当前任务的后台堆栈.(您可以通过标志和/或清单更改此行为,但这是默认行为.)当用户按下后退函数时,顶部活动结束并弹出堆栈.结果是用户看到应用程序返回到上一个活动.
finish()开始新活动后打电话完全没问题.结果将是当前活动(不再位于堆栈顶部,因为您刚开始新的活动)将从堆栈中删除.然后,当用户按下Back时,它将转到后台堆栈上的上一个活动(如果堆栈为空,则退出应用程序).
如果你在活动A和B之间来回反复,总是开始一个新的并且从不调用finish(),这可能会导致OOM异常,因为堆栈会填满每个活动的实例.
您可以在指南主题" 任务"和"后台堆栈"中阅读更多相关信息.它还描述了如何正确处理活动之间的循环.
如果您不需要该实例,那么这样做就可以了Activity。因此,当您按返回下一个时,Activity请知道您不会返回到此屏幕,而是返回到该屏幕下方的堆栈中的任何内容Activity或主屏幕(如果没有更多内容)。
但是,我不确定这就是您收到OOM异常的原因,您可能应该弄清楚它是从哪里来的。如果您使用Bitmaps 那么这可能会导致异常。
| 归档时间: |
|
| 查看次数: |
11632 次 |
| 最近记录: |