fix reload on non ui thread

This commit is contained in:
王劲鹏 2021-03-08 19:51:50 +08:00 committed by osborn
parent 2d5d24ac40
commit 1a84a3d7bb
2 changed files with 8 additions and 6 deletions

View File

@ -233,13 +233,14 @@ public class DoricDev {
DoricLog.d("Context source %s in debugging,skip reload", source); DoricLog.d("Context source %s in debugging,skip reload", source);
} else { } else {
DoricLog.d("Context reload :id %s,source %s ", context.getContextId(), source); DoricLog.d("Context reload :id %s,source %s ", context.getContextId(), source);
context.reload(script);
if (reloadingContexts.get(context.getContextId()) == null) {
reloadingContexts.put(context.getContextId(), context);
}
uiHandler.post(new Runnable() { uiHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
context.reload(script);
if (reloadingContexts.get(context.getContextId()) == null) {
reloadingContexts.put(context.getContextId(), context);
}
for (StatusCallback callback : callbacks) { for (StatusCallback callback : callbacks) {
callback.onReload(context, script); callback.onReload(context, script);
} }

View File

@ -185,9 +185,10 @@ - (void)reload:(NSString *)source script:(NSString *)script {
DoricLog(@"Context source %@ in debugging,skip reload", source); DoricLog(@"Context source %@ in debugging,skip reload", source);
} else { } else {
DoricLog(@"Context reload :id %@,source %@", context.contextId, source); DoricLog(@"Context reload :id %@,source %@", context.contextId, source);
[context reload:script];
[self.reloadingContexts addObject:context];
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
[context reload:script];
[self.reloadingContexts addObject:context];
for (id <DoricDevStatusCallback> callback in self.callbacks) { for (id <DoricDevStatusCallback> callback in self.callbacks) {
[callback onReload:context script:script]; [callback onReload:context script:script];
} }