package com.fwupgrade.saymanss; import android.content.SharedPreferences; import android.os.Build; import android.os.StrictMode; import android.support.multidex.MultiDexApplication; import com.fwupgrade.saymanss.utils.AppPathInfo; import com.fwupgrade.saymanss.utils.UtilTools; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * Created by Wangj on 2017/11/8. */ public class WDApplication extends MultiDexApplication { /** 全局实例变量. */ private static WDApplication wdApplication; private static Lock reentantLock = new ReentrantLock(); /** 保存多语言设置后的信息. */ private SharedPreferences languageRecord; /** * 获取Application. * @return */ public static WDApplication getInstance() { if (wdApplication == null) { try { reentantLock.lock(); if (wdApplication == null) { wdApplication = new WDApplication(); } } finally { reentantLock.unlock(); } } return wdApplication; } @Override public void onCreate() { super.onCreate(); WDApplication.wdApplication = this; /** 初始化应用程序信息 */ initApplicationInformation(); //解决android N(>=24)系统以上分享 路径为file://时的 android.os.FileUriExposedException异常 if (Build.VERSION.SDK_INT >= 24) { StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); } } /** * 初始化应用程序Information. */ private void initApplicationInformation() { /** 创建临时的缓存目录 */ createTempCacheDir(); } /** * Create temporary folder for caching applications's cache file. */ private void createTempCacheDir() { UtilTools.createFolderInSdcard(AppPathInfo.getLogPath()); UtilTools.createFolderInSdcard(AppPathInfo.getFwSavePath()); } }