0

いくつかの変数に基づいて変化する 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 に行きます

4

1 に答える 1