0

アクティビティ B からアクティビティ A に戻ると (バック プレスを介して)、多くの GC (logcat に表示) が発生し、アプリがアクティビティ A に戻る 1 秒前に停止するという問題に直面しています。

これに対する解決策はありますか?

キウイ

4

1 に答える 1

0

GC にはそれほど時間がかかりません。Android でのアクティビティの変更は簡単な作業ではありません。終了するアクティビティのコールバックの一時停止と、返されたアクティビティのコールバックの再開を繰り返す必要があります。これがおそらく最も時間がかかるため、両方のアクティビティのonPauseonStoponDestroy、のコールバックにかかる時間を測定することから始めます。onStartonResume

また、Android ツールのTraceViewを使用してアクティビティをプロファイリングし、時間がかかりすぎるものを確認することもできます。

お勧めしませんが、どうしても GC を回避しようとする場合は、ユーザーがバック キーを押す前に手動で呼び出すことができます。これにより、メモリができるだけ解放され、GC にヒットする可能性が低くなります。アクティビティが変更されたときにヒットし、そのために呼び出すことができますSystem.gc()

于 2012-05-29T09:55:44.960 に答える