summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author gaochong <gaochong@xiaomi.com> 2018-01-09 14:02:23 +0800
committer gaochong <gaochong@xiaomi.com> 2018-01-09 14:02:23 +0800
commitcbe2c55a69f15aa0a5f9a8913e82cedd742781c9 (patch)
treec718f47cf3b8bc2eb5205c9df153e58e157236ff
parent5d286326b15171d6a8a54d9fbc0e928fb06ef6bd (diff)
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 <gaochong@xiaomi.com> Test: manual - repeatedly test ResolverActivity show correctly Bug: 71730061
-rw-r--r--core/java/com/android/internal/app/ResolverComparator.java4
1 files changed, 3 insertions, 1 deletions
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<ResolvedComponentInfo> {
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<ResolvedComponentInfo> {
if (DEBUG) {
Log.d(TAG, "Has not found valid ResolverRankerService; Skip Prediction");
}
- return;
} else {
try {
mConnectSignal.await(CONNECTION_COST_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);