diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index eedbf56b8..a9f1f0d22 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/app/src/main/java/io/legado/app/App.kt @@ -28,6 +28,10 @@ import io.legado.app.help.http.cronet.CronetLoader import io.legado.app.model.BookCover import io.legado.app.utils.defaultSharedPreferences import io.legado.app.utils.getPrefBoolean +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.async +import kotlinx.coroutines.coroutineScope import splitties.systemservices.notificationManager import java.util.concurrent.TimeUnit @@ -49,7 +53,7 @@ class App : MultiDexApplication() { registerActivityLifecycleCallbacks(LifecycleHelp) defaultSharedPreferences.registerOnSharedPreferenceChangeListener(AppConfig) Coroutine.async { - installGmsTlsProvider(this@App) + installGmsTlsProviderAsync(this@App).start() //初始化封面 BookCover.toString() //清除过期数据 @@ -95,20 +99,24 @@ class App : MultiDexApplication() { * @param context * @return */ - private suspend fun installGmsTlsProvider(context: Context): Boolean { - return try { - val gms = context.createPackageContext( - "com.google.android.gms", - CONTEXT_INCLUDE_CODE or CONTEXT_IGNORE_SECURITY - ) - gms.classLoader - .loadClass("com.google.android.gms.common.security.ProviderInstallerImpl") - .getMethod("insertProvider", Context::class.java) - .invoke(null, gms) - true - } catch (e: java.lang.Exception) { - e.printStackTrace() - false + private suspend fun installGmsTlsProviderAsync(context: Context): Deferred { + return coroutineScope { + async(IO) { + try { + val gms = context.createPackageContext( + "com.google.android.gms", + CONTEXT_INCLUDE_CODE or CONTEXT_IGNORE_SECURITY + ) + gms.classLoader + .loadClass("com.google.android.gms.common.security.ProviderInstallerImpl") + .getMethod("insertProvider", Context::class.java) + .invoke(null, gms) + true + } catch (e: java.lang.Exception) { + e.printStackTrace() + false + } + } } }