diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java b/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java index a3eba20387..f49ba9cb58 100644 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java @@ -86,9 +86,9 @@ public void send(String instanceId, String url, long nativeCallback) { @Keep @CalledByNative - public void getBundleType(String instanceId, String content, long nativeCallback){ + public void getBundleType(String instanceId, final String content, final long nativeCallback){ BundType bundleType = WXBridgeManager.getInstance().getBundleType("", content); - String bundleTypeStr = bundleType == null ? "Others" : bundleType.toString(); + final String bundleTypeStr = bundleType == null ? "Others" : bundleType.toString(); WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId); if ("Others".equalsIgnoreCase(bundleTypeStr) && null != instance){ WXExceptionUtils.commitCriticalExceptionRT( @@ -99,7 +99,17 @@ public void getBundleType(String instanceId, String content, long nativeCallback null ); } - nativeInvokeOnSuccess(nativeCallback, content, bundleTypeStr); + WXBridgeManager.getInstance().post(new Runnable() { + @Override + public void run() { + if(WXBridgeManager.getInstance().isJSFrameworkInit()) { + nativeInvokeOnSuccess(nativeCallback, content, bundleTypeStr); + } + else { + nativeInvokeOnFailed(nativeCallback); + } + } + }); } class OnHttpListenerInner extends WXHttpListener { @@ -112,9 +122,9 @@ class OnHttpListenerInner extends WXHttpListener { @Override public void onSuccess(WXResponse response) { - String script = new String(response.originalData); + final String script = new String(response.originalData); BundType bundleType = WXBridgeManager.getInstance().getBundleType("", script); - String bundleTypeStr = bundleType == null ? "Others" : bundleType.toString(); + final String bundleTypeStr = bundleType == null ? "Others" : bundleType.toString(); if ("Others".equalsIgnoreCase(bundleTypeStr) && null != getInstance()){ WXExceptionUtils.commitCriticalExceptionRT( getInstance().getInstanceId(), @@ -124,7 +134,17 @@ public void onSuccess(WXResponse response) { null ); } - nativeInvokeOnSuccess(sNativeCallback, script, bundleTypeStr); + WXBridgeManager.getInstance().post(new Runnable() { + @Override + public void run() { + if(WXBridgeManager.getInstance().isJSFrameworkInit()) { + nativeInvokeOnSuccess(sNativeCallback, script, bundleTypeStr); + } + else{ + nativeInvokeOnFailed(sNativeCallback); + } + } + }); } @Override 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 91aba2a267..c1a9616451 100755 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java @@ -18,6 +18,8 @@ */ package com.taobao.weex.bridge; +import static com.taobao.weex.bridge.WXModuleManager.createDomModule; + import android.content.Context; import android.net.Uri; import android.os.Build; @@ -27,12 +29,13 @@ import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.RestrictTo; +import android.support.annotation.RestrictTo.Scope; import android.support.annotation.UiThread; import android.support.v4.util.ArrayMap; import android.text.TextUtils; import android.util.Log; import android.util.Pair; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -96,8 +99,6 @@ import com.taobao.weex.utils.batch.BactchExecutor; import com.taobao.weex.utils.batch.Interceptor; import com.taobao.weex.utils.tools.LogDetail; -import com.taobao.weex.utils.tools.TimeCalculator; - import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -109,7 +110,6 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -122,8 +122,6 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; -import static com.taobao.weex.bridge.WXModuleManager.createDomModule; - /** * Manager class for communication between JavaScript and Android. *