Untitled

 avatar
unknown
plain_text
19 days ago
2.3 kB
9
Indexable
package com.example.pokemon;

import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Pacote extends AppCompatActivity {

    // Criar o pool de threads para gerenciar as tarefas em segundo plano
    private final ExecutorService executorService = Executors.newSingleThreadExecutor(); // newFixedThreadPool(3);
    // Obter um handler para voltar para a interface após execução em segundo plano
    private final Handler mainHandler = new Handler(Looper.getMainLooper());

    Button gerarPokemon;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pacote);

        gerarPokemon = findViewById(R.id.gerarPokemon);

        gerarPokemon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                abrirPacote(); // Executa a tarefa assíncrona.
            }
        });
    }

    void abrirPacote() {
        gerarPokemon.setEnabled(false); // Impede o usuário de clicar 2 vezes
        executorService.execute(new Runnable() {
            @Override
            public void run() {
                Random random = new Random();
                for (int i = 0; i < 3; i++) {
                    int pokemonId = random.nextInt(151) + 1;
                    buscarPokemon(pokemonId);
                }

                // Reativa o botão
                mainHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        gerarPokemon.setEnabled(true);
                    }
                });
            }
        });
    }

    void buscarPokemon(int id) {
        mainHandler.post(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(Pacote.this, "Seu Pokemon é o " + id, Toast.LENGTH_SHORT).show();
            }
        });
    }
}
Editor is loading...
Leave a Comment