2010-12-05 4 views
3

GLSurfaceViewを拡張し、アンドロイドのアプリケーションでRendererを実装するクラスがあり、これはOpenGLレンダリングを担当します。 onSurfaceCreatedイベントからasynctaskを実行しようとすると、アプリケーションがクラッシュします(例外はスローされません)。メインのアクティビティから同じ非同期タスクを実行する場合は、すべて問題ありません。私はonSurfaceCreatedイベントからAsyncTaskを開始することはできませんなぜonSurfaceCreated(から呼び出されonSurfaceCreatedからAsyncTaskがクラッシュする

public class DownloadImageTask extends AsyncTask<String, Void, Integer> 
{ 
     @Override 
     protected Integer doInBackground(String... myParams) { 
      return 1; 
     } 

     @Override 
     protected void onPostExecute(Integer result) 
     { 

     } 
    } 

new DownloadImageTask().execute("myParam"); 

:asynctaskの実装は、この時点では単なるプレースホルダーですか?

+0

アプリクラッシュ後にlogcat出力を貼り付けます。 – Cristian

+0

どのように呼びますか? – st0le

+0

Stole、私は質問に呼び出しコードを追加しました。 –

答えて

3

私はUIスレッドで呼び出す必要があると思います。コンテキストを渡して、runOnUIThreadを実行してみてください。

+0

コードがUIスレッドで実行されているかどうかを知る方法はありますか? –

+0

スイングに道があり、アンドロイドについてはわかりません。私は少しgoogledしかし、私は何かを見つけることができませんでした。しかし、あなたが常にrunOnUIThreadを呼び出すと、何かがうまくいかないとは思わない。 –

関連する問題