我正面临一个问题,当我从活动B移回活动A(通过后退)导致大量GC(在logcat中显示)使得应用程序在返回活动A之前停止约1秒。
任何人都有解决方案吗?
猕猴桃
答案 0 :(得分:0)
GC不应该花那么长时间,在Android中更改活动不是一项快速任务,需要循环结束活动的暂停回调和返回活动的恢复回调。
这可能占用了最多的时间,因此我首先要衡量这些回调花费的时间:onPause
,onStop
,onDestroy
,onStart
,{ {1}}这两项活动。
您还可以使用Android工具TraceView来分析您的活动,看看花了多长时间。
不推荐,但如果您坚持尝试阻止GC,您可以在用户点击后退键之前手动调用它,这样内存将尽可能免费,并且当活动发生变化时,你被击中的可能性会降低,因为你可以拨打onResume