2

ProgressBarアプリケーションがあり、画面に を表示するとフリーズします。のサイズを大きくしたり、代わりにProgressBarを使用したりすると、フリーズしません。ViewProgressBar

LogCat ログをフリーズすると、次のようになります。

D/OpenGLRenderer(13909): GL Error after OpenGLRenderer::setupDrawMesh-   glVertexAttribPointer OpenGLRenderer: 1285
D/OpenGLRenderer(13909): GL Error after OpenGLRenderer::setupDrawMesh-   glVertexAttribPointer OpenGLRenderer: 1285
D/OpenGLRenderer(13909): GL Error after OpenGLRenderer::drawTextureMesh()-   glDrawArrays OpenGLRenderer: 1285
D/OpenGLRenderer(13909): GL Error after OpenGLRenderer::setupDrawMesh- glDisableVertexAttribArray OpenGLRenderer: 1285
4

2 に答える 2

1

UIスレッドから実行したいことには、AsyncTaskを使用できます。ProgressDialogがAsyncTaskのさまざまなライフサイクルメソッドで表示および非表示になっている多くの例が表示されます。

これが1つの良い例です(たくさんあります):AndroidAsyncTaskプログレスバー

于 2013-01-14T14:58:13.890 に答える
-1

計算には別のスレッドを使用する必要があります。UI スレッドの進行状況バーを更新する必要があります。エンジンと ui スレッドの間に共有変数が必要です。これはエンジン スレッドによって更新され、ui スレッドは定期的に変更をチェックする必要があります。

または、プログレス バーのオブジェクトをエンジン スレッドに渡して、プログレス バーの状態を更新するメソッドを呼び出すこともできます。

于 2013-01-14T14:55:53.060 に答える