cari

Rumah  >  Soal Jawab  >  teks badan

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

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


初始化数据是在onCreate()

PHP中文网PHP中文网2887 hari yang lalu1307

membalas semua(13)saya akan balas

  • 迷茫

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

    Letakkan operasi data permulaan dalam kaedah onCreate Anda boleh memasukkannya ke dalam onResume.

    balas
    0
  • 高洛峰

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

    Adalah disyorkan untuk mengetahui tentang kandungan Kitaran Hayat Aktiviti dalam tutorial Android rasmi.
    URLnya ialah https://developer.android.com...

    Penyelesaian:

    Letakkan operasi pemulaan dalam kaedah OnCreate() Aktiviti dan bukannya kaedah OnResume() atau OnStart().

    Anda juga boleh menetapkan pengecam pembolehubah global statik kepada 0, tetapkannya kepada 1 selepas pemulaan, dan tentukan sama ada pembolehubah itu adalah 0 sebelum permulaan Walau bagaimanapun, ini bukan cara yang betul untuk memahami LifeCycle masalah.


    Dilampirkan ialah gambar Kitaran Hayat

    balas
    0
  • 黄舟

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

    Fenomena pertama ialah data telah dimulakan semula, jadi penyelesaiannya adalah seperti berikut:
    1 Fikirkan mengapa data telah dimulakan semula, mungkin anda memulakannya dalam OnResume(). , kaedah OnStart()
    2,hasilkan Sebab masalahnya ialah data dimulakan beberapa kali, jadi anda boleh menambah fungsi berbilang panggilan ke pemulaan data dan menggunakan idea berorientasikan objek untuk merangkum data permulaan, yang sedikit seperti model minat tunggal . Kelebihan ini ialah ia menyelesaikan kemungkinan banyak masalah yang timbul,

    balas
    0
  • PHPz

    PHPz2017-04-17 17:36:18

    Jika setiap kali Activity anda ialah destroy, maka anda tidak akan dapat mencapai hasil yang anda inginkan dengan meletakkan program permulaan dalam onCreate. Jadi lebih baik anda menyemak log dahulu dan lihat Activity kitaran hayat anda.

    balas
    0
  • 阿神

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

    Setiap kali anda memasuki halaman, tentukan sama ada data sudah wujud Jika ia sudah wujud, gunakan cache dan jangan minta rangkaian untuk memuatkan data.

    balas
    0
  • 天蓬老师

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

    Dengan mengelog dan menggabungkannya dengan fungsi kitaran hayat android, masalah pada dasarnya diselesaikan

    balas
    0
  • 大家讲道理

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

    Ini bermakna aktiviti anda telah dibunuh, pertimbangkan sebabnya

    balas
    0
  • PHP中文网

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

    Biasanya onCreate akan dipanggil semula hanya selepas Aktiviti dimusnahkan. Semak mod permulaan Aktiviti semasa dan mod permulaan Aktiviti lain.

    balas
    0
  • 黄舟

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

    Anda boleh mempertimbangkan mod permulaan Aktiviti anda Terdapat 4 mod permulaan, sentiasa ada satu yang sesuai untuk anda

    balas
    0
  • 巴扎黑

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

    onSavedInstance()
    onRestoreInstance()

    balas
    0
  • Batalbalas