Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema no MainActivity.java

Estou com problema para fazer a Thread no onResume, o Android Studio diz para fazer o cast para Runnable ou utilizar String.valueOf porem isso não funciona e quando eu rodo o jogo a aplicação fecha.

package jumper.paloma.br.flappyjumper;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.FrameLayout;

import jumper.paloma.br.flappyjumper.engine.Game;

public class MainActivity extends AppCompatActivity {

    private Game game;

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

        FrameLayout container = findViewById(R.id.container);

        game = new Game(this);
        container.addView(game);
    }

    @Override
    protected void onResume(){
        super.onResume();
        game.inicia();
        new Thread(game).start();
    }

    @Override
    protected void onPause() {
        super.onPause();
        game.pause();
    }
}
1 resposta
solução!

Oi Paloma, bom dia!

Muito provavelmente o erro está acontecendo no comando

new Thread(game).start();

Como a Thread é a correta, do pacote padrão do Java java.lang, o erro não é sobre a classe Thread em si, mas sobre o parâmetro que estamos passando no construtor do objeto do tipo thread.

Pela documentação da classe Thread, só tem 2 construtores que aceitam 1 parâmetro, e esse parâmetro pode ser do tipo Runnable ou do tipo String. Como o Android Studio sabe que só existem esses 2 construtores, já sugere de tratar seu objeto do tipo Game como um Runnable, fazendo casting, ou como uma String, usando o método String.valueOf.

A questão é que pra funcionar corretamente, nossa classe Game deve implementar a interface Runnable. Fazendo isso, não precisará nem do casting nem transformar para String. O construtor será o que recebe um Runnable e o código compilará normalmente.

Se sua classe Game já estiver implementando a interface Runnable e mesmo assim tiver esse ou outro erro, copia aqui a mensagem de erro e a classe Game por favor. :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software