私の問題の良い解決策を教えてください。
私はActivity1、Activity2を持っています。Activity1 で UI を作成しonCreate()
、ある時点でユーザーが Activity2 を開始しますstartActivityForResult()
メモリ不足というのは非常に珍しいケースのようですが、一度遭遇したことがあるので、今後は防ぎたいと思います。「難しい」アプリやゲームを実行することで、この状況を繰り返すことさえできます。結果は - アプリに戻ると、Activity2 が再作成されます。そして、戻るボタンを押してActivity1に戻ると、それも再作成されます。そして、ここに論理的な衝突があります。Activity1 の UI は 0 から作成さonCreate
れ、同時に更新されonActivityResult
ます。
どうすればこれを解決できますか? いくつかのフラグをトリガーしonCreate
てチェックインしonActivityResult
ますか? これは私にとってはうまくいきますが、あるべき姿ではないと思います。
私の電話には Stock ROM、Android 2.3.5 が搭載されています
更新:わかりました、特定の質問、私は要素のリストを持っています。に組み込まれていonCreate()
ます。Activity2 を離れると、後で更新するために、クリックされた要素の ID を覚えておく必要がありますonActivityResult()
。バンドルに保存しても問題ありませんonSaveInstanceState()
。しかし!onCreate()
更新するものが何もないので、バンドルから入手するのは悪い考えです! ここで明確にするために、疑似コードを示します。
onCreate()
{
elementId = getIdFromBundle();
if (elementId == null)
createNewListFromZero();
}
onSaveInstanceState()
{
putIdToBundle(elementId);
}
onActivityResult()
{
updateOnlyOneListElement(elementId);
}
アクティビティが実際にシステムによって破棄されたため、id で要素を更新することはできません。そして、私はそれを再構築する必要があります。そして、私は に連続して電話をかけていonCreate(), onActivityResult()
ます。問題は、これら 2 つのメソッド間でロジックを共有して、要素リストを正しい順序で作成/更新する方法です。