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);