add lifecycle

This commit is contained in:
pengfei.zhou 2019-08-03 11:51:59 +08:00
parent 9a13cdb3ad
commit 4d8e11b660
3 changed files with 22 additions and 4 deletions

View File

@ -4,6 +4,7 @@ import android.content.Context;
import com.github.penfeizhou.doric.async.AsyncResult; import com.github.penfeizhou.doric.async.AsyncResult;
import com.github.penfeizhou.doric.plugin.DoricJavaPlugin; import com.github.penfeizhou.doric.plugin.DoricJavaPlugin;
import com.github.penfeizhou.doric.utils.DoricConstant;
import com.github.penfeizhou.doric.utils.DoricMetaInfo; import com.github.penfeizhou.doric.utils.DoricMetaInfo;
import com.github.penfeizhou.doric.shader.RootNode; import com.github.penfeizhou.doric.shader.RootNode;
import com.github.pengfeizhou.jscore.JSDecoder; import com.github.pengfeizhou.jscore.JSDecoder;
@ -34,7 +35,9 @@ public class DoricContext {
} }
public static DoricContext create(Context context, String script, String source) { public static DoricContext create(Context context, String script, String source) {
return DoricContextManager.getInstance().createContext(context, script, source); DoricContext doricContext = DoricContextManager.getInstance().createContext(context, script, source);
doricContext.callEntity(DoricConstant.DORIC_ENTITY_CREATE);
return doricContext;
} }
public AsyncResult<JSDecoder> callEntity(String methodName, Object... args) { public AsyncResult<JSDecoder> callEntity(String methodName, Object... args) {
@ -58,6 +61,7 @@ public class DoricContext {
} }
public void teardown() { public void teardown() {
callEntity(DoricConstant.DORIC_ENTITY_DESTROY);
DoricContextManager.getInstance().destroyContext(this).setCallback(new AsyncResult.Callback<Boolean>() { DoricContextManager.getInstance().destroyContext(this).setCallback(new AsyncResult.Callback<Boolean>() {
@Override @Override
public void onResult(Boolean result) { public void onResult(Boolean result) {
@ -88,4 +92,12 @@ public class DoricContext {
public void reload(String script) { public void reload(String script) {
getDriver().createContext(mContextId, script, source); getDriver().createContext(mContextId, script, source);
} }
public void onShow() {
callEntity(DoricConstant.DORIC_ENTITY_SHOW);
}
public void onHidden() {
callEntity(DoricConstant.DORIC_ENTITY_HIDDEN);
}
} }

View File

@ -47,4 +47,9 @@ public class DoricConstant {
public static final String DORIC_ENTITY_RESPONSE = "__response__"; public static final String DORIC_ENTITY_RESPONSE = "__response__";
public static final String DORIC_ENTITY_INIT = "__init__";
public static final String DORIC_ENTITY_CREATE = "__onCreate__";
public static final String DORIC_ENTITY_DESTROY = "__onDestroy__";
public static final String DORIC_ENTITY_SHOW = "__onShow__";
public static final String DORIC_ENTITY_HIDDEN = "__onHidden__";
} }

View File

@ -18,7 +18,7 @@ type Frame = { width: number, height: number }
export abstract class Panel { export abstract class Panel {
context?: any context?: any
onCreate() { } onCreate() { }
onDestory() { } onDestroy() { }
onShow() { } onShow() { }
onHidden() { } onHidden() { }
@ -30,6 +30,7 @@ export abstract class Panel {
getRootView() { getRootView() {
return this.__root__ return this.__root__
} }
getInitData() { getInitData() {
return this.__data__ return this.__data__
} }
@ -48,8 +49,8 @@ export abstract class Panel {
} }
@NativeCall @NativeCall
private __onDestory__() { private __onDestroy__() {
this.onDestory() this.onDestroy()
} }
@NativeCall @NativeCall