1

こんにちは

図

この概念がAndroidでどのように実装されているか知りたい

  • このアプリケーションでのナビゲーションは次のように行われます::

活動 1- -- から - - > 活動 2- - から - -> 活動 3 - - から - -> 活動 2

しかし、これを行うには::

からデータを渡します

Activity1 - - > Activity 2 - -> Activity2 からデータを渡さない - - > Activity3

Activity2- - from - - Activity3 に戻ると

  • Activity2 は Activity3 に存在しないデータを予期しているため、アプリケーションは終了します。
  • これを克服するにはどうすればよいですか、Activity3 から戻る前に Activity2 の状態 (データも) を保存するにはどうすればよいですか

サイクルは :: である必要があります

活動 1- -- から - - > 活動 2- - から - -> 活動 3 - - から - -> 活動 2


  • これを達成する方法は?
  • どのような概念を探す必要がありますか

私の説明が明確であることを願っています

4

3 に答える 3

0

間違ったアプローチである Activity3 から Activity2 に戻るときに、Activity2 を再度開始していると思います。Activity2 を再度開始する必要はありません。Activity3 から戻るボタンを押すだけで、スタックにあった Activity2 が再びフォアグラウンドになり、onCreate メソッドが再度呼び出されることはありません。

于 2013-08-24T15:24:43.920 に答える
0
  1. アクティビティは、その状態を に保存し、onPause()に復元する責任がありonCreate()ます。フラグメントについても同様です。

  2. アクティビティ 2 が を使用してアクティビティ 3 に何かを行うように要求した場合、アクティビティ 3 が終了startActivityForResult()すると、A はそれらの結果を で受け取りますonActivityResult()

  3. すべての新しく開始されたアクティビティは、タスク スタックとして構築されます。新しいアクティビティが終了すると、そのすぐ下の古いアクティビティが画面を占有します。

Android は、これらのメソッドが適切な順序で呼び出されることを確認します。

于 2013-08-24T15:26:13.583 に答える
0

すでに投稿された回答の精神で: android-lifecycle は、アクティビティを再作成/破棄しない場合、アクティビティを保持します。しかし、間違いなく、アンドロイドはあなたが戻ったときにデータがそこにあることを保証しません(それでも通常はそうですが、ガベージコレクターは何かを削除するかもしれません) http://developer.android.com/reference/android/app /Activity.html#ActivityLifecycle

ただし、何かが不足しており、アクティビティがスタックから削除されたときに実際にデータを保存する方法がわからない場合は、永続化メカニズムを検討することを検討してください ( http://developer.android.com/reference/android/app/を参照)。 Activity.html#SavingPersistentState )。特に入力データ(フォームなど)については、その件に関するドキュメントセクションを引用します。

アクティビティの onPause() メソッドが呼び出されると、バッキング コンテンツ プロバイダーにコミットするか、ユーザーが行ったすべての変更をファイルする必要があります。これにより、これらの変更は、実行しようとしている他のすべてのアクティビティで確実に認識されます。アクティビティのライフサイクル中の重要な時期に、データをさらに積極的にコミットすることをお勧めします。たとえば、新しいアクティビティを開始する前、独自のアクティビティを終了する前、ユーザーが入力フィールドを切り替えるときなどです。

于 2013-08-24T15:38:28.010 に答える