Repository: incubator-weex Updated Branches: refs/heads/master 45be6cbb0 -> b4d8ecbb1
[WEEX-303] [Android] fix nullPoint close #1106 Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b4d8ecbb Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b4d8ecbb Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b4d8ecbb Branch: refs/heads/master Commit: b4d8ecbb1fe1f7dbd7f1d70ef67a3915e231e92f Parents: 45be6cb Author: zhongcang <qh438406...@gmail.com> Authored: Tue Apr 10 15:01:05 2018 +0800 Committer: acton393 <zhangxing610...@gmail.com> Committed: Wed Apr 25 15:41:55 2018 +0800 ---------------------------------------------------------------------- .../com/taobao/weex/bridge/WXBridgeManager.java | 9 ++++++-- .../taobao/weex/ui/module/WXTimerModule.java | 22 ++++++-------------- 2 files changed, 13 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b4d8ecbb/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 f931ccf..bb90f23 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 @@ -58,6 +58,7 @@ import com.taobao.weex.dom.action.Actions; import com.taobao.weex.dom.action.TraceableAction; import com.taobao.weex.tracing.WXTracing; import com.taobao.weex.ui.WXComponentRegistry; +import com.taobao.weex.ui.component.WXComponent; import com.taobao.weex.utils.WXExceptionUtils; import com.taobao.weex.utils.WXFileUtils; import com.taobao.weex.utils.WXJsonUtils; @@ -2509,7 +2510,7 @@ public void invokeDestoryInstance(String instanceId, String namespace, String fu if (checkEmptyScreen(instance)){ if (WXEnvironment.isApkDebugable()){ - WXLogUtils.d("render error 4 js error !"); + WXLogUtils.e("render error 4 js error !"); } WXExceptionUtils.commitCriticalExceptionRT(exceptionId, WXErrorCode.WX_RENDER_ERR_JS_RUNTIME, function, @@ -2528,8 +2529,12 @@ public void invokeDestoryInstance(String instanceId, String namespace, String fu if (null == instance || instance.isDestroy()){ return false; } + WXComponent rootComponent = instance.getRootComponent(); + if (null == rootComponent) { + return true; + } - View rootView = instance.getRootView(); + View rootView = rootComponent.getRealView(); if (null == rootView){ return true; } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b4d8ecbb/android/sdk/src/main/java/com/taobao/weex/ui/module/WXTimerModule.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXTimerModule.java b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXTimerModule.java index 8745b54..2a29a29 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXTimerModule.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXTimerModule.java @@ -70,14 +70,9 @@ public class WXTimerModule extends WXModule implements Destroyable, Handler.Call public void setTimeout(@IntRange(from = 1) int funcId, @FloatRange(from = 0) float delay) { if(mWXSDKInstance != null) { postOrHoldMessage(MODULE_TIMEOUT, funcId, (int) delay, Integer.parseInt(mWXSDKInstance.getInstanceId())); - WXSDKManager.getInstance().postOnUiThread(new Runnable() { - @Override - public void run() { - if (null != mWXSDKInstance){ - mWXSDKInstance.getWXPerformance().timerInvokeCount++; - } - } - },0); + if (null != mWXSDKInstance.getWXPerformance()){ + mWXSDKInstance.getWXPerformance().timerInvokeCount++; + } } } @@ -85,14 +80,9 @@ public class WXTimerModule extends WXModule implements Destroyable, Handler.Call public void setInterval(@IntRange(from = 1) int funcId, @FloatRange(from = 0) float interval) { if(mWXSDKInstance != null) { postOrHoldMessage(MODULE_INTERVAL, funcId, (int) interval, Integer.parseInt(mWXSDKInstance.getInstanceId())); - WXSDKManager.getInstance().postOnUiThread(new Runnable() { - @Override - public void run() { - if (null != mWXSDKInstance){ - mWXSDKInstance.getWXPerformance().timerInvokeCount++; - } - } - },0); + if (null != mWXSDKInstance.getWXPerformance()){ + mWXSDKInstance.getWXPerformance().timerInvokeCount++; + } } }