1 回答

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)您創(chuàng)建 UniversalImageLoader 類的對(duì)象時(shí),傳遞getApplicationContext()而不是活動(dòng)上下文。
應(yīng)用程序上下文在整個(gè)應(yīng)用程序中可用,而活動(dòng)上下文則綁定到活動(dòng)生命周期。
更新:
Application Context:它是一個(gè)單例實(shí)例,可以通過(guò) getApplicationContext() 在活動(dòng)中訪問(wèn)。此上下文與應(yīng)用程序的生命周期相關(guān)聯(lián)。應(yīng)用程序上下文可用于您需要其生命周期與當(dāng)前上下文分離的上下文,或者當(dāng)您傳遞超出活動(dòng)范圍的上下文時(shí)
private void initImageLoader(){
UniversalImageLoader universalImageLoader = new UniversalImageLoader(getApplicationContext());
ImageLoader.getInstance().init(universalImageLoader.getConfig());
}
活動(dòng)上下文此上下文在活動(dòng)中可用。此上下文與活動(dòng)的生命周期相關(guān)聯(lián)。
在這里閱讀更多關(guān)于 Activity context 和 application context 的區(qū)別。 https://blog.mindorks.com/understanding-context-in-android-application-330913e32514
對(duì)于多個(gè)活動(dòng),您可以在 Application 類的 onCreate 方法中進(jìn)行初始化。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize the Universal Image Loader here
DisplayImageOptions defaultOptions = new
DisplayImageOptions.Builder()
.cacheOnDisk(true).cacheInMemory(true).build();
ImageLoaderConfiguration config = new
ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions).build();
ImageLoader.getInstance().init(config);
}
然后在您的 Activity 中像這樣獲取圖像加載器實(shí)例。
ImageLoader mImageLoader = ImageLoader.getInstance();
您還需要像這樣在 AndroidManifest 中添加您的應(yīng)用程序類。
<application
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
添加回答
舉報(bào)