私は単一のスレッドを使ってうまく動作する小さなプログラムを書いていますが、私は別のスレッドを介してグラフィックを呼びたいと思います。スレッドのオーバーロードを避けるために、グラフィックを表示するマルチスレッドを追加するにはどうすればよいですか?
グラフィックの呼び出しは、ボタンを押すことによって行われます。私はこのようなこのコードを包むしようとすると...
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
draw = new Draw(this);
setContentView(draw);
}
});
thread.start();
私は(この)の問題を取得
case R.id.button3:
draw = new Draw(this);
setContentView(draw);
break;
(これは正常に動作します)。私は、 "this"が何をしているかを、それがそのクラス内にあるクラスを参照する以外は完全に理解していません。 答えは簡単ですか? 私は次のようなメッセージが表示されているので、これを実行しようとしています。「アプリケーションがメインスレッドで作業している可能性があります。
ありがとうございました
...あなたが非同期的に描くべきではないことに注意してくださいエラー "setContentView(draw);" "android.view.ViewRootImpl $ CalledFromWrongThreadException:ビュー階層を作成した元のスレッドのみがそのビューに触れることができます。" –
私の答えをチェックplz –