Rumah > Soal Jawab > teks badan
Pembangun Android baharu menghadapi beberapa keraguan semasa proses pembangunan saya harap pakar dapat membantu membimbing saya.
Sebagai contoh, apl saya perlu mencipta pangkalan data sqlite apabila ia dipasang buat kali pertama
Penyelesaian saya adalah untuk melaksanakan kaedah penciptaan ini apabila pelancar memulakan halaman
Tetapi saya fikir mencipta pangkalan data sqlite adalah operasi yang memakan masa, dan saya perlu memasukkannya ke dalam Execution dalam sub-thread
Kemudian persoalannya datang:
Jika penciptaan pangkalan data dalam sub-thread gagal, bagaimana saya boleh memastikan kaedah seterusnya dapat dilaksanakan dengan lancar?
Apabila saya mencipta pangkalan data, pelancar mungkin telah melompat ke mainActivity, atau telah dipindahkan ke halaman lain, atau bersedia untuk menulis data ke dalam pangkalan data, tetapi pada masa ini saya boleh menentukan sama ada pangkalan data itu wujud Jika tidak Ya , saya boleh menciptanya semula, tetapi adalah mustahil untuk saya mencipta semula pangkalan data di semua tempat di mana operasi pangkalan data diperlukan Jadi, bagaimana saya boleh memastikan bahawa hasil operasi dalam utas kanak-kanak itu 100% selesai?
Dan terdapat beberapa operasi lain dalam pelancar, semuanya perlu diselesaikan dalam rangkaian kanak-kanak.
Penyelesaian.
天蓬老师2017-05-24 11:40:12
1. Bungkusnya
2.
bool checkDB(){
return ..;
}
Beans DBUtils.query(callback){
if(checkDb){
callback(data);
}
}
phpcn_u15822017-05-24 11:40:12
Adalah disyorkan untuk menggunakan logik sekatan yang kuat dan muncul kotak pemuatan yang tidak boleh dibatalkan untuk memastikan hasil pelaksanaan.
天蓬老师2017-05-24 11:40:12
Adalah disyorkan untuk merujuk kepada fakta bahawa apabila QQ mudah alih dimulakan buat kali pertama, terdapat bar kemajuan seperti permulaan data.