我正在LiveCards
(高频率)浏览GDK文档,我遇到了这行代码:
mLiveCard.getSurfaceHolder().addCallback(new RenderThread());
RenderThread
是Class
extends
Thread
并且未实施任何SurfaceHolder.Callback
。另一方面,在相同的示例代码中,他们定义LiveCardRenderer
来实现DirectRenderingCallback
,extends
依次为SurfaceHolder.Callback
LiveCardRenderer
。不应该使用RenderThread
代替{{1}}吗?
答案 0 :(得分:2)
感谢您抓住这一点。你是对的,它应该是new LiveCardRenderer()
。文档现已修复。
答案 1 :(得分:1)
这确实看起来很像一个错误,正如你所说的那样,你应该new RenderThread()
而不是new LiveCardRenderer()
。
如果您查看GDK中的任何示例应用程序,例如罗盘应用程序,您可以看到它们具有类似
的内容mRenderer = new CompassRenderer(this, mOrientationManager, mLandmarks);
mLiveCard.setDirectRenderingEnabled(true).getSurfaceHolder().addCallback(mRenderer);
CompassRenderer
扩展SurfaceHolder.Callback
正如您所期望的那样,代码原则上与LiveCardRenderer
的代码相似。
我希望有所帮助。