我有兴趣使用触摸输入为Android创建2D绘图应用程序。我将使用SurfaceView来实现这一点,因为它是OpenGL旁边最有效的,但对于这个应用程序,现在应该是一个问题。
在阅读了SurfaceView和Canvas绘图的文档和概述(http://developer.android.com/guide/topics/graphics/2d-graphics.html)之后,他们似乎建议创建一个扩展Thread的内部类来处理绘图工作。
这当然有理由不锁定UI并将工作卸载到辅助线程。但是,我不确定为什么他们不使用扩展 Thread 的外部类,甚至更好,为什么不使用外部的 Runnable ?
将此作为内部阶级是否有好处?扩展线程有什么好处,而不是为 Canvas 绘图实现 Runnable ?
谢谢!
答案 0 :(得分:1)
在他们的情景中,他们有一件事是对的,有一件事是错的IMO:
使线程类成为内部类的决定是可以的,因为该类只在代码的特定部分中需要,因此不需要将它暴露给外部。
我不同意延长Thread
。最佳做法是实施Runnable
并覆盖run
方法。这是因为您可以通过几种不同的方式使用Runnable
,例如启动普通线程,在线程池中排队等等。它还允许您根据需要扩展不同的类,因为{{1只是一个界面。