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

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


初始化数据是在onCreate()

PHP中文网
PHP中文网

认证0级讲师

membalas semua(13)
迷茫

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

小葫芦

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

黄舟

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,

PHPzhong

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.

阿神

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

Peter_Zhu

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

大家讲道理

Ini bermakna aktiviti anda telah dibunuh, pertimbangkan sebabnya

Ty80

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

黄舟

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

巴扎黑

onSavedInstance()
onRestoreInstance()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan