Untitled
unknown
plain_text
a month ago
2.3 kB
10
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