2

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

为了确保没有一些僵尸线程挂在周围并耗尽电池,我想定义一个超时并在脚本尚未返回时终止 v8。当然,我在主线程中执行脚本,AsyncTask或者IntentService永远不会在主线程中执行脚本。这样,Android 就不会保护自己显示“应用程序无响应”(ANR)。后台线程运行运行运行运行......

如何以干净的方式杀死v8?

4

1 回答 1

1

我在 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);
}
于 2016-07-22T18:48:43.447 回答