我面临一个问题,当我从活动 B 移回活动 A(通过后按)时,会导致大量 GC(在 logcat 中显示),这会使应用程序在返回活动 A 前大约 1 秒停止。
有人对此有任何解决方案吗?
猕猴桃
我面临一个问题,当我从活动 B 移回活动 A(通过后按)时,会导致大量 GC(在 logcat 中显示),这会使应用程序在返回活动 A 前大约 1 秒停止。
有人对此有任何解决方案吗?
猕猴桃
GC 应该不会花那么长时间,在 Android 中更改一个 Activity 不是一项快速的任务,需要在结束 Activity 的暂停回调和返回的 Activity 的恢复回调之间循环。这可能是占用时间最多的部分,因此我将首先测量在这些回调上花费了多少时间:onPause
, onStop
, onDestroy
, onStart
,onResume
两个活动。
您还可以使用 Android 工具TraceView来分析您的活动并查看耗时过长的情况。
不推荐,但是如果你坚持要阻止GC,你可以在用户点击返回键之前手动调用它,这样内存会尽可能的空闲,你被命中的机会也会更小当活动发生变化时点击,你可以打电话System.gc()