我正在主UI线程中的Android上处理虚拟机(实际上是V8)上的UI指令。这很好用。但是,现在我在混合中添加了一个JavaScript调试器(在我的例子中是Stetho)。我可以在遇到断点时暂停UI线程,甚至可以逐步执行指令。但是,当指令更改UI时,UI不会立即更新。相反,视图无效,只有当主事件循环继续处理时,才会呈现更新。
所以我的问题是,我可以强制从UI线程重绘整个设备而不返回主循环吗?如果我返回主循环,那么我将吹掉整个调用堆栈,并且在调试期间暂停将不再有效。
我试图获得主Looper,我甚至可以在其上调用Loop()(理想情况下开始处理事件),但这将成为主循环(并且你不能退出主循环器)。如果有人对如何模拟主事件循环有任何想法,那将非常感激。
答案 0 :(得分:1)
这很有趣,我和你做同样的事情,在J2V8和Stetho之间建立了一座桥梁。诀窍是在它自己的线程中运行调试器。由于调试器可以直接访问V8,因此它可以轻松地操作运行时,但是转到Native代码的命令(如UI命令)将在主线程上运行,直到它们返回到V8运行时。