Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

Commit

Permalink
* [Android] Fix ConcurrentModificationException (#2255)
Browse files Browse the repository at this point in the history
  • Loading branch information
Darin726 authored and YorkShen committed Mar 28, 2019
1 parent 36dce32 commit 5903f69
Showing 1 changed file with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,11 @@

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class WXServiceManager {

private static Map<String, WXJSService> sInstanceJSServiceMap = new HashMap<>();
private static volatile ConcurrentHashMap<String, WXJSService> sInstanceJSServiceMap = new ConcurrentHashMap<>();

public static boolean registerService(String name, String serviceScript, Map<String, Object> options) {
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(serviceScript)) return false;
Expand Down Expand Up @@ -83,14 +84,16 @@ public static WXJSService getService(String serviceName) {
}

public static void reload() {
WXBridgeManager.getInstance().post(new Runnable() {
@Override
public void run() {
for (Map.Entry<String, WXJSService> entry : sInstanceJSServiceMap.entrySet()) {
WXJSService service = entry.getValue();
registerService(service.getName(), service.getScript(), service.getOptions());
if(sInstanceJSServiceMap != null && sInstanceJSServiceMap.size() > 0) {
WXBridgeManager.getInstance().post(new Runnable() {
@Override
public void run() {
for (Map.Entry<String, WXJSService> entry : sInstanceJSServiceMap.entrySet()) {
WXJSService service = entry.getValue();
registerService(service.getName(), service.getScript(), service.getOptions());
}
}
}
});
});
}
}
}

0 comments on commit 5903f69

Please sign in to comment.