我在主UI线程中处理安卓上的虚拟机(实际上是V8)上的UI指令。这可以很好地工作。但是,现在我要添加一个JavaScript调试器(在我的例子中是Stetho)。我可以在命中断点时暂停UI线程,甚至单步执行指令。但是,当指令更改UI时,UI不会立即更新。取而代之的是,视图无效,只有当主事件循环继续处理时,更新才会呈现。
所以我的问题是,我可以在不返回主循环的情况下从UI线程强制重画整个设备吗?如果我返回到主循环,那么我将耗尽我的整个调用堆栈,调试期间的暂停将不再起作用。
我试图获取主循环,甚至可以对其调用Loop() (理想情况下是为了开始处理事件),但这将成为主循环(并且您不能退出主循环)。如果任何人对如何模拟主事件循环有任何想法,将不胜感激。
发布于 2016-06-16 21:32:48
这很有趣,我正在做和你一样的事情,在J2V8和Stetho之间架起一座桥梁。诀窍是在它自己的线程中运行调试器。由于调试器可以直接访问V8,因此它可以轻松地操作运行时,但是进入本机代码的命令(如UI命令)将在主线程上运行,直到它们返回到V8运行时为止。
https://stackoverflow.com/questions/35783291
复制相似问题