getApplicationContext()返回的是整個應用Application的context访递,生命周期是整個應用的生命周期,Application摧毀時它才摧毀同辣。
Activity.this 返回的是該Activity的context拷姿,生命周期與該Activity相同惭载,Activity摧毀時,它便被摧毀响巢。
getBaseContext() 返回由構造函數(shù)指定或setBaseContext()設置的上下文(谷歌工程師不建議使用)描滔。
1:當Application的Context能搞定的情況下,并且生命周期長的對象踪古,優(yōu)先使用Application的Context含长。
2:不要讓生命周期長于Activity的對象持有到Activity的引用。
3:盡量不要在Activity中使用非靜態(tài)內部類伏穆,因為非靜態(tài)內部類會隱式持有外部類實例的引用拘泞,如果使用靜態(tài)內部類,將外部實例引用作為弱引用持有枕扫。