Como colocor tempo numa activity

20 respostas
R

Exemplo num quiz: se a pessoa não responder em 1 minuto, vai para outra activity dizendo que perdeu.E se respondeu certo vai para outra activity da outra pergunta. E nessa outra pergunta do mesmo jeito.
Alguém sabe como fazer isso.
Se souber posta o código explicando.

20 Respostas

Ofidomundo

Qual plataforma?
Existem muitas formas de você fazer isso, uma delas é criar uma Thread do Time para que quando atinja um tempo limite algo aconteça:

int tempo = 1; // inicio
		int periodo = (1000 * 60); // tempo maximo
		Timer timer = new Timer();
		timer.scheduleAtFixedRate(new TimerTask() {
			public void run() {
				// redirecionar para a classe que você quer
			}
		}, tempo, periodo);
R

@Ofidomundo
OBRIGADO.

R
<a class="mention" href="/u/ofidomundo">@Ofidomundo</a>

eu tentei esse código que você postou mas não deu certo, quando volto para a primeira tela a função fica aparecendo mesmo eu dando finish () na tela que está o código .

JÁ tentei com Hander e acontece a mesma coisa, o que eu devo usar para quando eu sair da Activity que está o Handler ele não executar a função. Ou um if ( !se apertar finish () ou !se sair dessa activity () )

Eexecutar o código

TEM COMO FAZER ISSO?

new Handler().postDelayed(new Runnable() {

<a class="mention" href="/u/override">@Override</a>

public void run() {

startActivity(new Intent(getBaseContext(), VOCEPERDEU.class));

finish();

}

} ,60000);
R

Alguém sabe como resolver ?
Quero saber como colocar tempo máximo de 1 minuto para responder cada pergunta. Se não responder nesse tempo aparecer uma nova Activity dizendo que “você perdeu”. Se responder certo, ir para outra Activity com outra pergunta. E nessa pergunta tenha tempo máximo para responder de um minuto também é assim por diante.

Ofidomundo

timer.finish();

R

@Ofidomundo
Eu coloquei esse timer.finish ();
No Buttao mas não deu certo , tem certeza que é assim?

Ofidomundo

@RafaelV.B

desculpe, pequena memoria horrivel

timer.cancel();

Ofidomundo

Lembrando que esse Timer é o mesmo que você instanciou aqui

R
<a class="mention" href="/u/ofidomundo">@Ofidomundo</a>

Ainda esta dando erro

:53: error:cannot find symbol

timer.cancel();

^

symbol:   method cancel()
Ofidomundo

O meu funcionou!
Fui verificar uma aplicação na qual uso isso e foi…

Você esta dando cancel no time que você instanciou mesmo?

Ofidomundo
Timer timer = new Timer();
	 timer.schedule(new TimerTask() {

		@Override
		public void run() {
			// fazer o que quiser
		}
	}, 0, periodo);

tenho outra aplicação que esta assim

Ofidomundo

no fim como está o seu código?

R
<a class="mention" href="/u/ofidomundo">@Ofidomundo</a>

private View view;

Handler timer;

timer = new Handler();

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setView(getLayoutInflater().inflate(R.layout.salaum, null));
setContentView( getView() );

timer = new Handler();

timer.postDelayed(new Runnable() {

<a class="mention" href="/u/override">@Override</a>

public void run() {
startActivity(new Intent(getBaseContext(), VocePerdeu.class));
    finish();
    }
    
  } ,60000);
}

public void onBackPressed()

{

Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("");

builder.setMessage(Deseja realmente voltar? Se voltar o progresso do jogo será perdido.);

builder.setPositiveButton(Sim, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
 
  timer.cancel();
   finish();
   return;
 }
});

builder.setNegativeButton(Não, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
return;
 }
});

AlertDialog dialog = builder.create();

dialog.show();

}

Você sabe aonde estou errando?
Ofidomundo

usa a classe timer não o handle, deve ser isso

R

@Ofidomundo
É quase isso mas tá aparecendo esse erro
:39: error:local variable timer is accessed from within inner class; needs to be declared final
timer.cancel();
^

Ofidomundo

Declara como final ué

R

Como assim eu não entendi?

Ofidomundo
final Timer timer = new Timer();
R

@Ofidomundo
O erro ainda persiste

R

@Ofidomundo
Deu certo .
Obrigado pela sua atenção.

Criado 10 de agosto de 2018
Ultima resposta 10 de ago. de 2018
Respostas 20
Participantes 2