我可以在 J2V8 中终止 JavaScript 执行吗?

Can I kill JavaScript execution in J2V8?

我通过 J2V8 在我的 Android 项目中嵌入了 v8。这很好用,但有些情况下脚本会挂起(我想可能是由于某种无限循环)。代码太复杂而无法调试,并且总是会出现脚本 运行 疯狂的情况。

为了确保不会有一些僵尸线程挂在周围并耗尽电池电量,我想定义一个超时并在脚本尚未返回时终止 v8。当然,我在 AsyncTaskIntentService 中执行脚本,而不是在主线程中执行。这样 Android 不会保护自己显示 "Application Not Responding" (ANR)。后台线程运行运行运行...

如何干净利落地杀死v8?

我在 V8 对象上忽略了这个方法:

/**
 * Terminates any JavaScript executing on this runtime. Once
 * the runtime is released, any executors that were spawned
 * will also be force terminated.
 */
public void terminateExecution() {
    forceTerminateExecutors = true;
    terminateExecution(v8RuntimePtr);
}