Mam aplikację do quizów, która ma timer na całą gameaktywność, w której powinieneś odpowiedzieć na tyle pytań, ile możesz w wyznaczonych minutach.Aktywność nadal trwa po zakończeniu();
po zakończeniu przypisanych minut przeniesie Cię do aktywności związanej z wynikami który pokazuje twój wynik. Po naciśnięciu klawisza, utworzyłem okno dialogowe z ostrzeżeniem, które pyta, czy chcesz wrócić do głównego menu. Jeśli klikniesz "tak", strona powinna powrócić do głównego menu i zatrzymać/zabić działanie gry.
Po kliknięciu "tak", nastąpi powrót do menu głównego, ale gdy nadal znajdujesz się w dowolnym miejscu aplikacji, wyniki będą nadal wyświetlane z poprzedniej wersji gry, którą miałem. Może ja nie przedstawiłem naprawdę zakończył gameactivity .. Oto zegar iz powrotem prasa fragment z mojej działalności:
new CountDownTimer(seconds, 1000) {
public void onTick(long millisUntilFinished) {
timer.setText("Seconds left: " + millisUntilFinished/1000);
}
public void onFinish() {
Intent intent = new Intent(GameActivityAddition.this, Score.class);
intent.putExtra("totalscore", score);
intent.putExtra("numberquestions", rowId);
intent.putExtra("d", difficulty);
db.close();
startActivity(intent);
}
}.start();
@Override
public void onBackPressed() {
AlertDialog.Builder abuilder = new Builder(GameActivityAddition.this);
abuilder.setMessage("Return to Main Menu?");
abuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent main = new Intent(GameActivityAddition.this, Main.class);
startActivity(main);
finish();
}
});
abuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = abuilder.create();
alert.show();
}
Być może dane, które ustawiłeś w działaniu wyniku, nie zostaną wyczyszczone po zakończeniu aktywności, co spowoduje wyświetlenie starszych danych podczas ponownego odwiedzania aktywności. – Hiral
Nie przestajecie odliczać. – user996428
Domyślam się, że zegar odliczający działa jak wątek, który działa nawet po wywołaniu funkcji finish(). Spróbuj dodać zmienną boolean do timera, aby kontrolować jej działanie. – Huang