在使用Android上下文參數(shù)的時(shí)候經(jīng)常分不清Activity.this(這里的Activity代指Activity類,也就是你需要使用context參數(shù)的那個(gè)Activity,例如:MainActivity),getApplicationContext()和getBaseContext(),經(jīng)過谷歌查詢,終于算是有些明白了,這里記下來,備忘,也希望能幫助更多的人。 首先說一下生命周期上的區(qū)別。
接下來說說怎么使用getApplicationContext()和Activity.this。 根據(jù)你的控件的生命周期決定傳Activity.this還是getApplicationContext(),如果你的控件的生命周期是整個(gè)應(yīng)用,就傳送getApplicationContext(),如果是當(dāng)前的Activity,就傳送Activity.this。 以AlertDialog為例,AlertDialog的對(duì)象是依賴于View的,View是和具體的Activity相關(guān)的,如果Activity消亡了,則View也不存在,所以需要傳入Activity.this而不是getApplicationContext()。 綜上所述:最簡單的方法是根據(jù)控件的生命周期決定傳什么參數(shù)。 參考資料:
|
|