From 508690e7885b6542f8a0122c9bcbecf7ae9d7859 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Sun, 30 Oct 2016 00:49:56 +0200 Subject: [PATCH] Try to fix DictionaryActivity leaks. --- src/com/hughes/android/dictionary/DictionaryActivity.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 5ea0e27..b02eb7d 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -108,6 +108,7 @@ import java.util.Locale; import java.util.Random; import java.util.Set; import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicBoolean; @@ -135,7 +136,7 @@ public class DictionaryActivity extends ActionBarActivity { final Handler uiHandler = new Handler(); - private final Executor searchExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() { + private final ExecutorService searchExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() { @Override public Thread newThread(Runnable r) { return new Thread(r, "searchExecutor"); @@ -198,6 +199,7 @@ public class DictionaryActivity extends ActionBarActivity { intent.putExtra(C.DICT_FILE, dictFile.getPath()); intent.putExtra(C.INDEX_SHORT_NAME, indexShortName); intent.putExtra(C.SEARCH_TOKEN, searchToken); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); return intent; } @@ -701,6 +703,7 @@ public class DictionaryActivity extends ActionBarActivity { currentSearchOperation = null; searchOperation.interrupted.set(true); } + searchExecutor.shutdownNow(); try { Log.d(LOG, "Closing RAF."); -- 2.43.0