いくつかの変数に基づいて変化する imageButton があり、このプロセスをバックグラウンドで実行したいと考えています。
スレッドに入れてみましたが、AsyncTask はまだよくわかりません。
public void initGameButtonOne() {
new Thread(new Runnable() {
@Override
public void run() {
final ImageButton gameButton1 = getView().findViewById(R.id.multiPlayerGameButton1);
final ImageButton gameButton2 = getView().findViewById(R.id.multiPlayerGameButton2);
final ImageButton gameButton3 = getView().findViewById(R.id.multiPlayerGameButton3);
final ImageButton gameButton4 = getView().findViewById(R.id.multiPlayerGameButton4);
final ImageButton gameButton5 = getView().findViewById(R.id.multiPlayerGameButton5);
final ImageButton gameButton6 = getView().findViewById(R.id.multiPlayerGameButton6);
final ImageButton gameButton7 = getView().findViewById(R.id.multiPlayerGameButton7);
final ImageButton gameButton8 = getView().findViewById(R.id.multiPlayerGameButton8);
final ImageButton gameButton9 = getView().findViewById(R.id.multiPlayerGameButton9);
gameButton1.getBackground().setAlpha(0);
gameButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (player1Turn) {
gameButton1.setBackgroundResource(R.drawable.gameobutton);
gameButton1.getLayoutParams().height = 300;
gameButton1.getLayoutParams().width = 300;
gameButton1.getBackground().setAlpha(255);
gameButton1.setClickable(false);
player1Turn = !player1Turn;
player1ClickedButton1 = true;
if (!gameButton1.isClickable() &&
!gameButton2.isClickable() &&
!gameButton3.isClickable() &&
!gameButton4.isClickable() &&
!gameButton5.isClickable() &&
!gameButton6.isClickable() &&
!gameButton7.isClickable() &&
!gameButton8.isClickable() &&
!gameButton9.isClickable()) {
goToPlayerDrawScreen(getView());
}
checkPlayer1WinCondition();
} else {
gameButton1.setBackgroundResource(R.drawable.gamexbutton);
gameButton1.getLayoutParams().height = 220;
gameButton1.getLayoutParams().width = 220;
gameButton1.getBackground().setAlpha(255);
gameButton1.setClickable(false);
player1Turn = !player1Turn;
player2ClickedButton1 = true;
checkPlayer2WinCondition();
}
}
});
}
}).run();
}
問題は、バックグラウンド リソースとレイアウト パラメーターをバックグラウンドで実行したいだけで、既に新しいスレッドに入れているのに、メイン スレッドでパフォーマンスが低下する理由がわかりません。
したがって、私は AsyncTask に行きます