私はAndroidアプリを作成しています。機能の1つは、ユーザーから何らかのデータ(品目名、品目ID、およびバーコード文字列)を収集することです。アンドロイドのアクティビティ間でデータを一時的に保持および復元する正しい方法は何ですか?
アクティビティ1はフォームです。ユーザーは項目名と項目番号を手動で入力します。バーコード文字列の場合、ユーザーが「スキャン」ボタンをクリックすると、アクティビティ2(スキャナー)が開始され、バーコードをスキャンして読み取る。バーコードが読み取られると、Activity1(フォーム)が再び開始され、すべてのデータがフォームに表示されます。
アクティビティ2がインテントによって開始されると、アクティビティ1が強制終了されます。だから、私は項目名と品目番号を取得し、意図を見つめる前に一時的に保管しなければならない。その後、Activity1が再び開始されると、それらのデータは再びフォームに表示されます。
私はIntent Extraを使って項目名と番号を保持し、それをActivity2に渡してActivity1に戻すことを考えています。 Activity2にこれらのデータが必要ないとすれば、それがこのシナリオで正しい方法であるのだろうかと思います。もっと良い方法はありますか?代わりに共有設定を使用する必要がありますか?
*アクティビティ2がインテントによって開始されると、アクティビティ1は明示的に破棄した場合にのみ殺されます。それは事実ですか?もしそうなら、なぜですか? –
@MLACに関する質問:あなたは心配する必要はありません。最初の活動は決して殺されません。必要な情報を保存するために、通常のセーブ/リストアのインスタンス状態メカニックを使用することができます(私が何をしているのかわからない場合は、Googleの「インスタンス状態を復元する」)。 –
私が今問題を抱えているのは、Activity1からActivity2に行くために意図を使うと、Activity1とフォームのデータがなくなってしまうことです。したがって、Activity1を再び起動すると、以前のデータなしでアクティビティが作成されます。だから私はActivity2を開始する前にデータを保存しなければならない。 – MLAC