mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
fix(inrt): duplicate script executions
This commit is contained in:
parent
b381f28470
commit
54b7024109
@ -34,6 +34,7 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
||||
|
||||
private AutoJs(Application application) {
|
||||
super(application);
|
||||
getScriptEngineService().registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package com.stardust.auojs.inrt.autojs;
|
||||
|
||||
import com.stardust.app.GlobalAppContext;
|
||||
import com.stardust.auojs.inrt.R;
|
||||
import com.stardust.autojs.execution.ScriptExecution;
|
||||
import com.stardust.autojs.execution.ScriptExecutionListener;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/5/3.
|
||||
*/
|
||||
|
||||
public class ScriptExecutionGlobalListener implements ScriptExecutionListener {
|
||||
private static final String ENGINE_TAG_START_TIME = "com.stardust.scriptdroid.autojs.Goodbye, World";
|
||||
|
||||
@Override
|
||||
public void onStart(ScriptExecution execution) {
|
||||
execution.getEngine().setTag(ENGINE_TAG_START_TIME, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ScriptExecution execution, Object result) {
|
||||
onFinish(execution);
|
||||
}
|
||||
|
||||
private void onFinish(ScriptExecution execution) {
|
||||
Long millis = (Long) execution.getEngine().getTag(ENGINE_TAG_START_TIME);
|
||||
if (millis == null)
|
||||
return;
|
||||
double seconds = (System.currentTimeMillis() - millis) / 1000.0;
|
||||
AutoJs.getInstance().getScriptEngineService().getGlobalConsole()
|
||||
.verbose(GlobalAppContext.getString(R.string.text_execution_finished), execution.getSource().toString(), seconds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onException(ScriptExecution execution, Exception e) {
|
||||
onFinish(execution);
|
||||
}
|
||||
|
||||
}
|
||||
@ -11,6 +11,7 @@ import com.stardust.auojs.inrt.LogActivity;
|
||||
import com.stardust.auojs.inrt.Pref;
|
||||
import com.stardust.auojs.inrt.autojs.AutoJs;
|
||||
import com.stardust.autojs.execution.ExecutionConfig;
|
||||
import com.stardust.autojs.execution.ScriptExecution;
|
||||
import com.stardust.autojs.project.ProjectConfig;
|
||||
import com.stardust.autojs.script.JavaScriptFileSource;
|
||||
import com.stardust.pio.PFiles;
|
||||
@ -29,6 +30,7 @@ public class AssetsProjectLauncher {
|
||||
private ProjectConfig mProjectConfig;
|
||||
private Context mActivity;
|
||||
private Handler mHandler;
|
||||
private ScriptExecution mScriptExecution;
|
||||
|
||||
public AssetsProjectLauncher(String projectDir, Context context) {
|
||||
mAssetsProjectDir = projectDir;
|
||||
@ -62,9 +64,13 @@ public class AssetsProjectLauncher {
|
||||
}
|
||||
|
||||
private void runScript() {
|
||||
if (mScriptExecution != null && mScriptExecution.getEngine() != null &&
|
||||
!mScriptExecution.getEngine().isDestroyed()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
JavaScriptFileSource source = new JavaScriptFileSource("main", mMainScriptFile);
|
||||
AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
mScriptExecution = AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||
.executePath(mProjectDir));
|
||||
} catch (Exception e) {
|
||||
AutoJs.getInstance().getGlobalConsole().error(e);
|
||||
|
||||
@ -20,4 +20,6 @@
|
||||
<string name="summary_dont_show_main_activity">打开应用后直接运行脚本</string>
|
||||
<string name="text_others">其他</string>
|
||||
<string name="powered_by_autojs">Powered by Auto.js</string>
|
||||
<string name="text_execution_finished" formatted="false">\n------------\n[%s]运行结束,用时%f秒</string>
|
||||
|
||||
</resources>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user