検索

ホームページ  >  に質問  >  本文

android - 如何避免activity再次启动时又一次初始化数据

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


初始化数据是在onCreate()

PHP中文网PHP中文网2771日前1223

全員に返信(13)返信します

  • 迷茫

    迷茫2017-04-17 17:36:18

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 17:36:18

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

    解決策:

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

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


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

    返事
    0
  • 黄舟

    黄舟2017-04-17 17:36:18

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

    返事
    0
  • PHPz

    PHPz2017-04-17 17:36:18

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

    返事
    0
  • 阿神

    阿神2017-04-17 17:36:18

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:36:18

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:36:18

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 17:36:18

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

    返事
    0
  • 黄舟

    黄舟2017-04-17 17:36:18

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:36:18

    onSavedInstance()
    onRestoreInstance()

    返事
    0
  • キャンセル返事