在FrameTracer.java类里面:
public void doFrame(final long lastFrameNanos, final long frameNanos) {
.....................
listener.getHandler().post(new Runnable() {
@OverRide
public void run() {
listener.getHandler().post(new AsyncDoFrameTask(listener,
lastFrameNanos, frameNanos, getScene(), droppedCount));
}
});
}
1.Async异步的实现本质上是通过启动新线程(listener.getHandler()所属的线程,在demo里是HandlerThread("test"))来调用doFrame,AsyncDoFrameTask本身并没有同步或者异步的实现。
2.上面代码里向HandlerThread("test")所在的messagequeue里面抛送了两次runnable,是不是有些冗余,理论上等同于:
public void doFrame(final long lastFrameNanos, final long frameNanos) {
.....................
listener.getHandler().post(new AsyncDoFrameTask(listener,
lastFrameNanos, frameNanos, getScene(), droppedCount));
}
个人的一点疑惑,冒昧提出,如果是自己理解错了还请海涵哈。
在FrameTracer.java类里面:
public void doFrame(final long lastFrameNanos, final long frameNanos) {
.....................
listener.getHandler().post(new Runnable() {
@OverRide
public void run() {
listener.getHandler().post(new AsyncDoFrameTask(listener,
lastFrameNanos, frameNanos, getScene(), droppedCount));
}
});
}
1.Async异步的实现本质上是通过启动新线程(listener.getHandler()所属的线程,在demo里是HandlerThread("test"))来调用doFrame,AsyncDoFrameTask本身并没有同步或者异步的实现。
2.上面代码里向HandlerThread("test")所在的messagequeue里面抛送了两次runnable,是不是有些冗余,理论上等同于:
public void doFrame(final long lastFrameNanos, final long frameNanos) {
.....................
listener.getHandler().post(new AsyncDoFrameTask(listener,
lastFrameNanos, frameNanos, getScene(), droppedCount));
}
个人的一点疑惑,冒昧提出,如果是自己理解错了还请海涵哈。