私のアプリでは、ユーザーが複数ページの入力(サインアッププロセス)を実行する必要があります。ユーザーがサインアップに深く入り込むにつれて、ユーザーが「終了」をクリックするまでデータをそのまま保持する必要があります。このプロセスには、サブアクティビティを呼び出すアクティビティと、別のサブアクティビティを呼び出すサブアクティビティが含まれます。
フローは次のようになります:メイン->サブアクティビティ(サインアップのパート1)->サブアクティビティ(パート2)->サブアクティビティ(パート3)。
ここでの問題は、logcatからメモリ不足の警告が表示され、ユーザーがアプリの奥深くに入るとさまざまなプロセスが強制終了されることです。カスタムオブジェクトをアクティビティ間で渡すのではなく、mysqlliteに保存し、必要に応じて取得することで、手持ちのメモリを節約しようとしました。追加するもう1つのポイントは、私は画像を扱っておらず、使用されるコントロールはテキストビュー、エディットビュー、スピナーだけです。
私の質問は、複数のサブアクティビティが連鎖している場合、メモリ不足の問題が発生するのは一般的ですか?メモリを解放するにはどうすればよいですか?カスタムコントロールは、プリセットコントロールよりも大幅に多くのメモリを使用しますか?(私の予感の1つ)
*編集*メモリ不足の問題の理由を見つけました。サブアクティビティとは何の関係もありません。原因は、私が使用しているカスタムコントロールです。代わりにプリセットコントロールを使用してテストを行ったところ、アプリの全体的なパフォーマンスが大幅に向上しました。メモリ不足の警告がなくなり、すべてがスムーズに機能するようになりました。