android - 如何避免activity再次启动时又一次初始化数据
PHP中文网
PHP中文网 2017-04-17 17:34:18
0
13
1269

本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?


初始化数据是在onCreate()

PHP中文网
PHP中文网

认证0级讲师

全員に返信(13)
迷茫

初期化データ操作を onCreate メソッドに配置します。onResume に配置することもできます。

いいねを押す +0
小葫芦

アクティビティ ライフサイクルの内容については、Android の公式チュートリアルで学習することをお勧めします。
URL は https://developer.android.com...

解決策:

OnCreate() または OnResume() メソッドの代わりに、Activity の OnStart() メソッドに初期化操作を置きます。

静的グローバル変数識別子を 0 に設定し、初期化後に 1 に設定し、初期化前に変数が 0 であるかどうかを判断することもできます。ただし、これを解決するには、LifeCycle を理解することをお勧めします。問題。


ライフサイクルの写真を添付し​​ます

いいねを押す +0
黄舟

最初の現象は、データが再度初期化されていることです。そのため、解決策は次のとおりです。
1. データが再度初期化された理由を考えます。おそらく、OnResume() でデータを初期化した可能性があります。 , OnStart() メソッド。
2. この問題の原因は、データが複数回初期化されることです。そのため、オブジェクト指向のアイデアを使用して初期化データをカプセル化できます。これは、単一関心モデルに少し似ています。この利点は、複数の実行によって発生する可能性のある問題を解決できることです。

いいねを押す +0
PHPzhong

Activity が毎回 destroy になる場合は、onCreate に初期化プログラムを入れても望む結果を得ることができません。したがって、まず log をチェックして、Activity のライフサイクルを確認してください。

いいねを押す +0
阿神

ページに入るたびに、データがすでに存在するかどうかを確認し、すでに存在する場合はキャッシュを使用し、ネットワークにデータのロードを要求しません。

いいねを押す +0
Peter_Zhu

ログを取得し、Androidのライフサイクル機能と組み合わせることで、問題は基本的に解決されます

いいねを押す +0
大家讲道理

それはあなたのアクティビティが強制終了されたことを意味します。理由を考えてください

いいねを押す +0
Ty80

通常、onCreate はアクティビティが破棄された後にのみ再度呼び出されます。現在のアクティビティの起動モードと別のアクティビティの起動モードを確認します。

いいねを押す +0
黄舟

アクティビティの起動モードを検討できます。起動モードは 4 つあり、常に適切なものがあります。

いいねを押す +0
巴扎黑

onSavedInstance()
onRestoreInstance()

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート