0

私は、アクティビティを不明確な回数再利用するアプリケーションを持っています。実行中Androidアプリケーションのライフサイクル混乱

a> b1 || c1> b2 || c2> ...

> b1> b2> b1に行くと、私のアプリはまだ画面にb1リストを表示しますが、それをクリックすると、対応するb2アクティビティに移動します。 bのデータを保持するために使用するarrayListは、bの正しいインスタンスに対して復元する必要があります。

私は読んでhttp://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle しかし、私はonPauseとonResumeは、同じ活動を再び使用して以来、動作しないと思います。

答えて

0

すべてのアクティビティ間で移動する方法によって異なります。

戻るボタンを押すか、finish()を実行すると、アクティビティが破棄されます。私はあなたがb2にfinish()をやっているこのケースで信じて、あなたはb1に戻ります。

あなたのアクティビティのインスタンスを含むスタックのようなアクティビティを考えます。同じアクティビティの複数のインスタンスをスタックに含めることができます。

あなたが上にあり、あなたがあなたのスタックをB1に行く次のようにとどまる:あなたは別の操作を行う場合

b1 
a 

あなたはB2に行き、あなたのスタックが続いこの

b2 
b1 
a 

のようになりますstartActivity() B1のために、あなたがfinish()を行う場合や、押す、しかし

b1 
b2 
b1 
a 

を取得しますあなたは実際にb2を破壊し、あなたはb1から得た最初のインスタンスに戻ります。注意:スタックには、さまざまなデータを保持できるアクティビティのインスタンスがあります。

+0

アクティビティb2を押しても、b1のuiリストのみが表示されます。実際のデータはまだb2のデータです。私は12345とb1のリストを持っています。私は67890を表示するb2を開きます。ヒットバック12345が表示されます。その時点でデータを記録するリストエントリを選択した場合、3と言うと、復元されていません。 – r2DoesInc

+0

私はあなたのデータをどのように整理しているのでしょうか?しかし、スタックの一番上のアクティビティが戻ると、スタック内の次のアクティビティの 'onResume()'が呼び出されます。 'onResume()'を調べて何をしているのか確認してください。また、情報やアダプターを提供する構造体の変更を行っているかどうかを確認してください。最後に、情報が静的である(したがって、すべてのアクティビティで共有できる)か、あなたの情報がローカルであるかどうかを確認してください。 –