package com.gh.gamecenter.pkg

import androidx.multidex.MultiDexApplication
import com.therouter.TheRouter
import com.gh.gamecenter.core.iinterface.IApplication
import java.util.*

class PkgModuleApp : MultiDexApplication() {

    private val mApplicationList = ServiceLoader.load(IApplication::class.java, this.javaClass.classLoader)

    override fun onCreate() {
        super.onCreate()
        initArouter()
        mApp = this
        for (application in mApplicationList) {
            application.onCreate(this)
        }
    }

    private fun initArouter() {
        if (BuildConfig.DEBUG) {  // 这两行必须写在init之前，否则这些配置在init过程中将无效
            // 可以直接删掉本行 ARouter.openLog() // 打印日志
            // 可以直接删掉本行 ARouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        // 可以直接删掉本行 ARouter.init(this) // 尽可能早，推荐在Application中初始化
    }

    companion object {
        private lateinit var mApp: PkgModuleApp

        fun getInstance(): PkgModuleApp {
            return mApp
        }
    }
}