請求網(wǎng)絡(luò)
使用URL請求網(wǎng)絡(luò),然后調(diào)用readText()方法獲取網(wǎng)絡(luò)數(shù)據(jù)的字符串。readText()時Kotlin標(biāo)準(zhǔn)庫中的擴展函數(shù)。
網(wǎng)絡(luò)請求不能放到主線程執(zhí)行。Kotlin里面為了解決這個問題,有一個async()的函數(shù)來處理異步任務(wù)。(java中AsyncTasks的缺陷,是當(dāng)代碼運行到postExecute時,activity已經(jīng)被銷毀,就會崩潰)
asyns函數(shù)
使用uiThread方式回到主線程。uiThread有個優(yōu)點就是,當(dāng)它被一個activity調(diào)用時,如果activity.isFinishing()返回true,則uiThread不會執(zhí)行。這樣就不會在activity銷毀后遇到崩潰的情況了。