From cbe2c55a69f15aa0a5f9a8913e82cedd742781c9 Mon Sep 17 00:00:00 2001 From: gaochong Date: Tue, 9 Jan 2018 14:02:23 +0800 Subject: Fix ResolverActivity don't show items ResolverActivity sort the list resolved intent with AsyncTask. The method sort hold CountDownLatch to wait the time-consuming operation. In some case, the operation doesn't end and the CountDownLatch can't be released.The default excutor of AsyncTask is serial. There should release CountDownLatch in destroy() to avoid this case. Change-Id: Ie10126f735d9f511dfe086c21f3f5ffaeb831086 Signed-off-by: gaochong Test: manual - repeatedly test ResolverActivity show correctly Bug: 71730061 --- core/java/com/android/internal/app/ResolverComparator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ResolverComparator.java b/core/java/com/android/internal/app/ResolverComparator.java index 77cfc2fc5bd4..96d3baf7cf0b 100644 --- a/core/java/com/android/internal/app/ResolverComparator.java +++ b/core/java/com/android/internal/app/ResolverComparator.java @@ -411,6 +411,9 @@ class ResolverComparator implements Comparator { mContext.unbindService(mConnection); mConnection.destroy(); } + if (mAfterCompute != null) { + mAfterCompute.afterCompute(); + } if (DEBUG) { Log.d(TAG, "Unbinded Resolver Ranker."); } @@ -573,7 +576,6 @@ class ResolverComparator implements Comparator { if (DEBUG) { Log.d(TAG, "Has not found valid ResolverRankerService; Skip Prediction"); } - return; } else { try { mConnectSignal.await(CONNECTION_COST_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); -- cgit v1.2.3-59-g8ed1b