Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev ca5250076 -> 58abd2236


 fix NP crash, reload crash when context null


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/f51beff5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/f51beff5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/f51beff5

Branch: refs/heads/0.16-dev
Commit: f51beff5af578baa5eb0f487eb7448bea2be9954
Parents: a46adce
Author: 御魂 <wentao....@alibaba-inc.com>
Authored: Sat Aug 26 16:10:21 2017 +0800
Committer: 御魂 <wentao....@alibaba-inc.com>
Committed: Sat Aug 26 16:10:21 2017 +0800

----------------------------------------------------------------------
 .../java/com/alibaba/weex/WXPageActivity.java   |  5 ++++-
 .../java/com/taobao/weex/WXSDKInstance.java     | 23 +++++++++++---------
 .../com/taobao/weex/common/IWXDebugProxy.java   |  2 ++
 3 files changed, 19 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f51beff5/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
----------------------------------------------------------------------
diff --git 
a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java 
b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
index e5d5696..fe5994d 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java
@@ -513,6 +513,8 @@ public class WXPageActivity extends WXBaseActivity 
implements IWXRenderListener,
     mReceiver = new RefreshBroadcastReceiver();
     IntentFilter filter = new IntentFilter();
     filter.addAction(IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH);
+    filter.addAction(IWXDebugProxy.ACTION_INSTANCE_RELOAD);
+
     registerReceiver(mReceiver, filter);
   }
 
@@ -574,7 +576,8 @@ public class WXPageActivity extends WXBaseActivity 
implements IWXRenderListener,
   public class RefreshBroadcastReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
-      if 
(IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH.equals(intent.getAction())) {
+      if (IWXDebugProxy.ACTION_INSTANCE_RELOAD.equals(intent.getAction()) ||
+              
IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH.equals(intent.getAction())) {
         // String myUrl = intent.getStringExtra("url");
         // Log.e("WXPageActivity", "RefreshBroadcastReceiver reload onReceive 
ACTION_DEBUG_INSTANCE_REFRESH mBundleUrl:" + myUrl + " mUri:" + mUri);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f51beff5/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 dce8168..9e26736 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -419,11 +419,13 @@ public class WXSDKInstance implements 
IWXActivityStateListener,DomContext, View.
 
   private void ensureRenderArchor(){
     if(mRenderContainer == null){
-      mRenderContainer = new RenderContainer(getContext());
-      mRenderContainer.setLayoutParams(new 
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
ViewGroup.LayoutParams.MATCH_PARENT));
-      mRenderContainer.setBackgroundColor(Color.TRANSPARENT);
-      mRenderContainer.setSDKInstance(this);
-      mRenderContainer.addOnLayoutChangeListener(this);
+      if (getContext() != null) {
+        mRenderContainer = new RenderContainer(getContext());
+        mRenderContainer.setLayoutParams(new 
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
ViewGroup.LayoutParams.MATCH_PARENT));
+        mRenderContainer.setBackgroundColor(Color.TRANSPARENT);
+        mRenderContainer.setSDKInstance(this);
+        mRenderContainer.addOnLayoutChangeListener(this);
+      }
     }
   }
 
@@ -600,11 +602,12 @@ public class WXSDKInstance implements 
IWXActivityStateListener,DomContext, View.
     WXSDKEngine.reload();
 
     // 可以发送广播吗?
-    Intent intent = new Intent();
-    intent.setAction(IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH);
-    intent.putExtra("url", mBundleUrl);
-    mContext.sendBroadcast(intent);
-
+    if (mContext != null) {
+      Intent intent = new Intent();
+      intent.setAction(IWXDebugProxy.ACTION_INSTANCE_RELOAD);
+      intent.putExtra("url", mBundleUrl);
+      mContext.sendBroadcast(intent);
+    }
     // mRendered = false;
     //    destroy();
     // renderInternal(mPackage, mTemplate, mOptions, mJsonInitData, mFlag);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f51beff5/android/sdk/src/main/java/com/taobao/weex/common/IWXDebugProxy.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/common/IWXDebugProxy.java 
b/android/sdk/src/main/java/com/taobao/weex/common/IWXDebugProxy.java
index 4005d4c..bcd6acf 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/IWXDebugProxy.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXDebugProxy.java
@@ -24,6 +24,8 @@ package com.taobao.weex.common;
 public interface IWXDebugProxy {
     String ACTION_DEBUG_INSTANCE_REFRESH = "DEBUG_INSTANCE_REFRESH";
 
+    String ACTION_INSTANCE_RELOAD = "INSTANCE_RELOAD";
+
     void start();
 
     void stop(boolean reload);

Reply via email to