前言:有時(shí)候fragment需要獲取activity的權(quán)柄context才可以執(zhí)行一些東西,然而偶爾會(huì)出現(xiàn)
on a null object reference
的錯(cuò)誤,原因是沒(méi)有初始化,其實(shí)就是context沒(méi)有初始化,我們一般習(xí)慣fragment提取成基類(lèi)的baseFragment里面一般有
initData():用于初始化一些數(shù)據(jù)或函數(shù)
initListener()用監(jiān)聽(tīng)
問(wèn)題在于如果在上述兩者獲取context就會(huì)出現(xiàn)上面所述的問(wèn)題沒(méi)有初始化,原因是fragment的生命周期:參考
Android Fragment 生命周期以及基本用法(一)
onActivityCreated:在Activity的OnCreate()結(jié)束后,會(huì)調(diào)用此方法。所以到這里的時(shí)候,Activity已經(jīng)創(chuàng)建完成!在這個(gè)函數(shù)中才可以使用Activity的所有資源。如果把下面的代碼放在這里,獲取到的context的值將不會(huì)再是空的!