Repository: incubator-weex Updated Branches: refs/heads/0.12-dev cb5d6c33a -> 73684e5a8
replace Java WxTimerModule with C++ setTimeout/setInterval implementation Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/1ce2a638 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/1ce2a638 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/1ce2a638 Branch: refs/heads/0.12-dev Commit: 1ce2a638f887feeca2f5f5f8c89784e770f162fe Parents: 86bacfb Author: kaifeng.ly <kaifeng...@alibaba-inc.com> Authored: Fri Apr 7 14:34:32 2017 +0800 Committer: kaifeng.ly <kaifeng...@alibaba-inc.com> Committed: Fri Apr 7 14:34:32 2017 +0800 ---------------------------------------------------------------------- android/sdk/libs/armeabi/libweexv8.so | Bin 3563544 -> 3579944 bytes .../java/com/taobao/weex/WXSDKInstance.java | 8 ++++++++ .../java/com/taobao/weex/bridge/WXBridge.java | 8 ++++++++ .../com/taobao/weex/bridge/WXBridgeManager.java | 14 ++++++++++++-- .../java/com/taobao/weex/common/IWXBridge.java | 2 ++ .../taobao/weex/bridge/WXWebsocketBridge.java | 3 +++ 6 files changed, 33 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/android/sdk/libs/armeabi/libweexv8.so ---------------------------------------------------------------------- diff --git a/android/sdk/libs/armeabi/libweexv8.so b/android/sdk/libs/armeabi/libweexv8.so index 471bb04..405be69 100755 Binary files a/android/sdk/libs/armeabi/libweexv8.so and b/android/sdk/libs/armeabi/libweexv8.so differ http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/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 ef29257..8ffd2cf 100755 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java @@ -922,6 +922,7 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View. WXLogUtils.w("Warning :Component tree has not build completely, onActivityDestroy can not be call!"); } + destroyUnhandledTimer(); destroy(); } @@ -1270,6 +1271,13 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View. } } + /** + * destroy all unhandled c++ setTimeout/setInterval callback + */ + public void destroyUnhandledTimer(){ + WXBridgeManager.getInstance().clearInstanceCallback(mInstanceId); + } + public synchronized void destroy() { WXSDKManager.getInstance().destroyInstance(mInstanceId); WXComponentFactory.removeComponentTypesByInstanceId(getInstanceId()); http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java index 7172c11..6389cbb 100755 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java @@ -254,6 +254,14 @@ class WXBridge implements IWXBridge { */ public native void takeHeapSnapshot(String filename); + + /** + * Called to clear all unhandled c++ timer when an instance is + * destroyed + * @param instanceId the destoyed instance's id. + */ + public native void clearInstanceCallback(String instanceId); + /** * JavaScript uses this methods to call Android code * http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/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 b890352..eba0abb 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 @@ -570,7 +570,10 @@ public class WXBridgeManager implements Callback,BactchExecutor { if (WXEnvironment.isApkDebugable()) { mLodBuilder.append("[WXBridgeManager] callNative >>>> instanceId:").append(instanceId) .append(", tasks:").append(tasks).append(", callback:").append(callback); - WXLogUtils.d(mLodBuilder.substring(0)); + + //WXLogUtils.d(mLodBuilder.substring(0)); + WXLogUtils.d(mLodBuilder.toString()); + mLodBuilder.setLength(0); } @@ -1069,7 +1072,10 @@ public class WXBridgeManager implements Callback,BactchExecutor { .append("function:").append(function); if(logTaskDetail) mLodBuilder.append(" tasks:").append(WXJsonUtils.fromObjectToJSONString(args)); - WXLogUtils.d(mLodBuilder.substring(0)); + + //WXLogUtils.d(mLodBuilder.substring(0)); + WXLogUtils.d(mLodBuilder.toString()); + mLodBuilder.setLength(0); } mWXBridge.execJS(instanceId, namespace, function, args); @@ -1341,6 +1347,10 @@ public class WXBridgeManager implements Callback,BactchExecutor { } } + public void clearInstanceCallback(String instanceId){ + mWXBridge.clearInstanceCallback(instanceId); + } + public void destroy() { if (mJSThread != null) { mJSThread.quit(); http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java index 5d992eb..9e7fc1b 100755 --- a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java +++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java @@ -238,6 +238,8 @@ public interface IWXBridge extends IWXObject { */ void takeHeapSnapshot(String filename); + void clearInstanceCallback(String instanceId); + /** * js call native http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ce2a638/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java ---------------------------------------------------------------------- diff --git a/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java b/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java index 4ee7922..f5d4329 100755 --- a/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java +++ b/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java @@ -305,6 +305,9 @@ public class WXWebsocketBridge implements IWXBridge,WXWebSocketManager.JSDebugge public void takeHeapSnapshot(String filename) {} @Override + public void clearInstanceCallback(String instanceId){} + + @Override public void reportJSException(String instanceId, String func, String exception) { if (mJsManager != null) { mJsManager.reportJSException(instanceId, func, exception);