Repository: incubator-weex Updated Branches: refs/heads/master 5ca1f002a -> c281b565a
[WEEX-506][Android] try fix report defaultUrl in mutilThread case Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/c281b565 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/c281b565 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/c281b565 Branch: refs/heads/master Commit: c281b565a0e6707aaac81bbf66a44f5ec348633c Parents: 5ca1f00 Author: zhongcang <qh438406...@gmail.com> Authored: Mon Jul 16 14:11:00 2018 +0800 Committer: zhongcang <qh438406...@gmail.com> Committed: Mon Jul 16 14:11:00 2018 +0800 ---------------------------------------------------------------------- .../sdk/src/main/java/com/taobao/weex/WXSDKInstance.java | 11 ++++++++++- .../java/com/taobao/weex/bridge/WXBridgeManager.java | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c281b565/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java index 0b3c9d9..d0d3c99 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java @@ -1342,7 +1342,6 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan public synchronized void destroy() { if(!isDestroy()) { - WXSDKManager.getInstance().getAllInstanceMap().remove(mInstanceId); if(mRendered) { WXSDKManager.getInstance().destroyInstance(mInstanceId); } @@ -1400,6 +1399,16 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan inactiveAddElementAction.clear(); } }); + + //when report error in @WXExceptionUtils + // instance may had destroy and remove, + // so we delay remove from allInstanceMap + WXBridgeManager.getInstance().postDelay(new Runnable() { + @Override + public void run() { + WXSDKManager.getInstance().getAllInstanceMap().remove(mInstanceId); + } + },5000); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c281b565/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java index c6395ca..ab4e6da 100644 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java @@ -396,6 +396,13 @@ public class WXBridgeManager implements Callback, BactchExecutor { m.sendToTarget(); } + public void postDelay(Runnable r,long delayMillis){ + if (mJSHandler == null) { + return; + } + mJSHandler.postDelayed(WXThread.secure(r),delayMillis); + } + void setTimeout(String callbackId, String time) { Message message = Message.obtain(); message.what = WXJSBridgeMsgType.SET_TIMEOUT;