0

これは単純な質問ですが、決定を下すのに役立つ明確な情報が見つかりません。

特定のオブジェクトに入力され、クリアされてから次のオブジェクトに入力される 2 つのフォーム (2 つのアクティビティ) を持つアプリケーションがあります。これは、特定のアプリケーションの実行中に 100 回以上実行される可能性があります。したがって、バックスタックには 100 以上のアクティビティが取り込まれる可能性があります。

そのデータはすべて sqlite データベースに保存されるので、バックスタックがそのようにいっぱいになるのを許可する必要がありますか? パフォーマンスへの影響は何ですか - フォームの何百ものインスタンスを保存すると、確実に負担がかかり始めます。これらのインスタンスは十分に効率的に保存されているので、これについて心配する必要はありませんか、それともバックスタックには何らかの制限がありますか? 入力されたデータだけをバックスタックに保存する方法はありますか、それとも保存された「インスタンス」は入力されたデータだけで構成されていますか? 代わりに onbackpressed で sqlite データベースをクエリすることは、バックスタックが以前のフォームをロードできるようにするよりもはるかに効率が悪いですか? 既存のインスタンス ala をリロードし、FLAG_ACTIVITY_SINGLE_TOP既存の入力データをクリアする方法はありますが、それ (データ) をバックスタックに保存しますか?

私は常にAndroidの戻るボタン、バックスタック、およびアクティビティ管理の動作を変更するのは悪い考えであると読んだり言ったりしてきました。

両方のフォームからのデータは、この質問の 2 番目の段落よりもサイズが大きくないと思います。

ご協力ありがとうございました。

JoxTraex に応じて編集:

fill -> add -> fill -> add -> n -> commit

することができます

fill activity A and then instantiate and fill B -> transact to DB -> REinstantiate and fill A then REinstantiate and fill B -> transact to DB -> n -> commit

私は正しく理解しましたか?

その場合、A と B の新しいインスタンスをインスタンス化するのではなく、リロードすると、バックスタックの問題が解決されます。これは、バックスタックの問題が 2 つしかないためです。

バックスタックに 2 つのアクティビティしかなかったので、以前に入力したデータをリロードonbackpressedするのか、それとも 2 回しか機能しないのか。

4

1 に答える 1