package com.wisedu.scc.love.application;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import java.util.LinkedList;
import java.util.List;
/**
* 自定义Application
*/
public class LoveApplication extends Application {
private List<Activity> mList = new LinkedList<>(); // 用于存放Activity的列表
private static LoveApplication instance; // 单例
public static final String DEFAULT_AVATAR = "avatar_default.jpg";
// 配置当前用户信息
public String userId;
public String avatar;
public String phone;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
/**
* 获取单例
* @return
*/
public synchronized static LoveApplication getInstance() {
if (null == instance) {
instance = new LoveApplication();
}
return instance;
}
/**
* 将Activity添加至列表
* @param activity
*/
public void addActivity(Activity activity) {
mList.add(activity);
}
/**
* 退出应用
*/
public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
/**
* 低内存时自动回收垃圾
*/
public void onLowMemory() {
super.onLowMemory();
System.gc();
}
/**
* 初始化ImageLoader
*/
public static void initImageLoader(Context context) {
// ImageLoader配置参数
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.threadPoolSize(3) // 线程池大小,默认为3
.threadPriority(Thread.NORM_PRIORITY - 1) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.memoryCacheSizePercentage(13) // default
.diskCacheSize(50 * 1024 * 1024)
.diskCacheFileCount(100)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs()
.build();
ImageLoader.getInstance().init(config); // 必须先初始化ImageLoader
}
@Override
public void onCreate() {
super.onCreate();
initImageLoader(getApplicationContext());
}
}