feat:remove Context instance before js destory
This commit is contained in:
		| @@ -162,19 +162,6 @@ public class DoricContext { | ||||
|  | ||||
|     public void teardown() { | ||||
|         callEntity(DoricConstant.DORIC_ENTITY_DESTROY); | ||||
|         DoricContextManager.getInstance().destroyContext(this).setCallback(new AsyncResult.Callback<Boolean>() { | ||||
|             @Override | ||||
|             public void onResult(Boolean result) { | ||||
|  | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public void onError(Throwable t) { | ||||
|  | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public void onFinish() { | ||||
|         getDriver().asyncCall(new Callable<Object>() { | ||||
|             @Override | ||||
|             public Object call() { | ||||
| @@ -185,8 +172,7 @@ public class DoricContext { | ||||
|                 return null; | ||||
|             } | ||||
|         }, ThreadMode.UI); | ||||
|             } | ||||
|         }); | ||||
|         DoricContextManager.getInstance().destroyContext(this); | ||||
|     } | ||||
|  | ||||
|     public DoricJavaPlugin obtainPlugin(DoricMetaInfo<DoricJavaPlugin> doricMetaInfo) { | ||||
|   | ||||
| @@ -57,6 +57,7 @@ public class DoricContextManager { | ||||
|     } | ||||
|  | ||||
|     AsyncResult<Boolean> destroyContext(final DoricContext context) { | ||||
|         doricContextMap.remove(context.getContextId()); | ||||
|         final AsyncResult<Boolean> result = new AsyncResult<>(); | ||||
|         context.getDriver().destroyContext(context.getContextId()).setCallback(new AsyncResult.Callback<Boolean>() { | ||||
|             @Override | ||||
| @@ -71,7 +72,6 @@ public class DoricContextManager { | ||||
|  | ||||
|             @Override | ||||
|             public void onFinish() { | ||||
|                 doricContextMap.remove(context.getContextId()); | ||||
|             } | ||||
|         }); | ||||
|         return result; | ||||
|   | ||||
| @@ -70,11 +70,10 @@ - (DoricContext *)getContext:(NSString *)contextId { | ||||
| 
 | ||||
| - (void)destroyContext:(DoricContext *)context { | ||||
|     NSString *contextId = context.contextId; | ||||
|     [context.driver destroyContext:contextId].finishCallback = ^{ | ||||
|     dispatch_sync(self.mapQueue, ^() { | ||||
|         [self.doricContextMap removeObjectForKey:contextId]; | ||||
|     }); | ||||
|     }; | ||||
|     [context.driver destroyContext:contextId]; | ||||
| } | ||||
| 
 | ||||
| - (NSArray *)aliveContexts { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user