在Application的onCreate進(jìn)行了網(wǎng)絡(luò)請(qǐng)求,接口請(qǐng)求次數(shù) 飆升史侣,接口被頻繁調(diào)用
為什么在onCreate進(jìn)行網(wǎng)絡(luò)請(qǐng)求會(huì)有以上影響呢,主要有兩方面的原因
①魏身、Applictaion會(huì)在App創(chuàng)建一個(gè)新進(jìn)程的時(shí)候被實(shí)例化惊橱,而onCreate是Application最主要的一個(gè)生命周期,所以一次正常的App啟動(dòng)箭昵,onCreate會(huì)被調(diào)用(1*進(jìn)程數(shù))次
②税朴、現(xiàn)在很多App具有保活策略家制,也就是有守護(hù)進(jìn)程會(huì)不斷喚醒我們的App正林,這樣就會(huì)到賬進(jìn)程被循環(huán)創(chuàng)建,這樣就又會(huì)導(dǎo)致第一個(gè)問(wèn)題
總結(jié):1.必須謹(jǐn)記千萬(wàn)不能在Application的onCreate進(jìn)行網(wǎng)絡(luò)請(qǐng)求
2.NetKit建議添加網(wǎng)絡(luò)接口請(qǐng)求頻率的統(tǒng)計(jì)功能
3.通過(guò)以下方法輔助檢測(cè)
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());