設定:
アクティビティのレイアウトには、SurfaceHolder コールバックが定義された SurfaceView オブジェクト (obj) があります。obj には次のスレッドが定義されています (これは Xamarin を介して C# で記述されています)。
void DrawThread() {
Canvas c;
while (drawingThreadActive) {
c=null;
try {
c = this.Holder.LockCanvas(null);
lock(Holder) {
//force redraw
PostInvalidate();
}
} finally {
if (c!=null) {
this.Holder.UnlockCanvasAndPost(c);
}
}
//sleep for 50 ms or so (20Hz refresh)
}
}
SurfaceCreated()
コールバックは問題なく呼び出され、このスレッドが開始されます。ただし、PostInvalidate() を呼び出しても、onDraw()
関数が呼び出されることはありません。
すべてが正しくセットアップされていると確信しています-何が欠けているのか分かりますか?
メソッドが呼び出されることを考えると、SurfaceCreated()
「UI に表示される」と想定しています。
私が見逃しているものはありますか?