fix memory leak

This commit is contained in:
王劲鹏
2019-11-22 14:34:15 +08:00
parent f1da548fb8
commit 2ecde80fbd
3 changed files with 10 additions and 11 deletions

View File

@@ -40,6 +40,8 @@ import pub.doric.utils.DoricUtils;
* @CreateDate: 2019-07-18
*/
public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.TimerCallback {
private HandlerThread handlerThread;
private final Handler mJSHandler;
private final DoricBridgeExtension mDoricBridgeExtension = new DoricBridgeExtension();
private IDoricJSE mDoricJSE;
@@ -47,7 +49,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time
private final DoricRegistry mDoricRegistry = new DoricRegistry();
public DoricJSEngine(final boolean isNative, final IStatusCallback statusCallback) {
HandlerThread handlerThread = new HandlerThread(this.getClass().getSimpleName());
handlerThread = new HandlerThread(this.getClass().getSimpleName());
handlerThread.start();
Looper looper = handlerThread.getLooper();
mJSHandler = new Handler(looper, this);
@@ -171,6 +173,8 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time
public void teardown() {
mDoricJSE.teardown();
mTimerExtension.teardown();
handlerThread.quit();
mJSHandler.removeCallbacksAndMessages(null);
}
private void loadBuiltinJS(String assetName) {