本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?
初始化数据是在onCreate()
认证0级讲师
初期化データ操作を onCreate メソッドに配置します。onResume に配置することもできます。
アクティビティ ライフサイクルの内容については、Android の公式チュートリアルで学習することをお勧めします。 URL は https://developer.android.com...
解決策:
OnCreate() または OnResume() メソッドの代わりに、Activity の OnStart() メソッドに初期化操作を置きます。
OnCreate()
OnResume()
OnStart()
静的グローバル変数識別子を 0 に設定し、初期化後に 1 に設定し、初期化前に変数が 0 であるかどうかを判断することもできます。ただし、これを解決するには、LifeCycle を理解することをお勧めします。問題。
ライフサイクルの写真を添付します
最初の現象は、データが再度初期化されていることです。そのため、解決策は次のとおりです。 1. データが再度初期化された理由を考えます。おそらく、OnResume() でデータを初期化した可能性があります。 , OnStart() メソッド。2. この問題の原因は、データが複数回初期化されることです。そのため、オブジェクト指向のアイデアを使用して初期化データをカプセル化できます。これは、単一関心モデルに少し似ています。この利点は、複数の実行によって発生する可能性のある問題を解決できることです。
Activity が毎回 destroy になる場合は、onCreate に初期化プログラムを入れても望む結果を得ることができません。したがって、まず log をチェックして、Activity のライフサイクルを確認してください。
Activity
destroy
onCreate
log
ページに入るたびに、データがすでに存在するかどうかを確認し、すでに存在する場合はキャッシュを使用し、ネットワークにデータのロードを要求しません。
ログを取得し、Androidのライフサイクル機能と組み合わせることで、問題は基本的に解決されます
それはあなたのアクティビティが強制終了されたことを意味します。理由を考えてください
通常、onCreate はアクティビティが破棄された後にのみ再度呼び出されます。現在のアクティビティの起動モードと別のアクティビティの起動モードを確認します。
アクティビティの起動モードを検討できます。起動モードは 4 つあり、常に適切なものがあります。
onSavedInstance()onRestoreInstance()
初期化データ操作を onCreate メソッドに配置します。onResume に配置することもできます。
アクティビティ ライフサイクルの内容については、Android の公式チュートリアルで学習することをお勧めします。
URL は https://developer.android.com...
解決策:
OnCreate()
またはOnResume()
メソッドの代わりに、Activity のOnStart()
メソッドに初期化操作を置きます。静的グローバル変数識別子を 0 に設定し、初期化後に 1 に設定し、初期化前に変数が 0 であるかどうかを判断することもできます。ただし、これを解決するには、LifeCycle を理解することをお勧めします。問題。
ライフサイクルの写真を添付します
最初の現象は、データが再度初期化されていることです。そのため、解決策は次のとおりです。
1. データが再度初期化された理由を考えます。おそらく、OnResume() でデータを初期化した可能性があります。 , OnStart() メソッド。
2. この問題の原因は、データが複数回初期化されることです。そのため、オブジェクト指向のアイデアを使用して初期化データをカプセル化できます。これは、単一関心モデルに少し似ています。この利点は、複数の実行によって発生する可能性のある問題を解決できることです。
Activity
が毎回destroy
になる場合は、onCreate
に初期化プログラムを入れても望む結果を得ることができません。したがって、まずlog
をチェックして、Activity
のライフサイクルを確認してください。ページに入るたびに、データがすでに存在するかどうかを確認し、すでに存在する場合はキャッシュを使用し、ネットワークにデータのロードを要求しません。
ログを取得し、Androidのライフサイクル機能と組み合わせることで、問題は基本的に解決されます
それはあなたのアクティビティが強制終了されたことを意味します。理由を考えてください
通常、onCreate はアクティビティが破棄された後にのみ再度呼び出されます。現在のアクティビティの起動モードと別のアクティビティの起動モードを確認します。
アクティビティの起動モードを検討できます。起動モードは 4 つあり、常に適切なものがあります。
onSavedInstance()
onRestoreInstance()