From 28e8e91303230bcea32850e3d510a2f1261d8911 Mon Sep 17 00:00:00 2001 From: seven332 Date: Sun, 23 Dec 2018 12:48:06 +0800 Subject: [PATCH] Do io initialization tasks in new thread --- .../com/hippo/ehviewer/EhApplication.java | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.java b/app/src/main/java/com/hippo/ehviewer/EhApplication.java index 29e21bc2d..3e0481b01 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.java +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.java @@ -16,11 +16,13 @@ package com.hippo.ehviewer; +import android.annotation.SuppressLint; import android.app.Activity; import android.content.ComponentCallbacks2; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.os.AsyncTask; import android.os.Debug; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -43,6 +45,7 @@ import com.hippo.network.StatusCodeException; import com.hippo.text.Html; import com.hippo.unifile.UniFile; import com.hippo.util.BitmapUtils; +import com.hippo.util.ExceptionUtils; import com.hippo.util.ReadableTime; import com.hippo.yorozuya.FileUtils; import com.hippo.yorozuya.IntIdGenerator; @@ -82,6 +85,7 @@ public class EhApplication extends RecordingApplication { private final List mActivityList = new ArrayList<>(); + @SuppressLint("StaticFieldLeak") @Override public void onCreate() { super.onCreate(); @@ -106,17 +110,32 @@ public class EhApplication extends RecordingApplication { Analytics.start(this); } - // Disable no media file checker for now. Some devices stuck here. -// // Check no media file -// UniFile downloadLocation = Settings.getDownloadLocation(); -// if (Settings.getMediaScan()) { -// CommonOperations.removeNoMediaFile(downloadLocation); -// } else { -// CommonOperations.ensureNoMediaFile(downloadLocation); -// } + // Do io tasks in new thread + new AsyncTask() { + @Override + protected Void doInBackground(Void... voids) { + // Check no media file + try { + UniFile downloadLocation = Settings.getDownloadLocation(); + if (Settings.getMediaScan()) { + CommonOperations.removeNoMediaFile(downloadLocation); + } else { + CommonOperations.ensureNoMediaFile(downloadLocation); + } + } catch (Throwable t) { + ExceptionUtils.throwIfFatal(t); + } - // Clear temp dir - clearTempDir(); + // Clear temp files + try { + clearTempDir(); + } catch (Throwable t) { + ExceptionUtils.throwIfFatal(t); + } + + return null; + } + }.doInBackground(); // Check app update update();