【发布时间】:2012-09-07 07:43:57
【问题描述】:
我有一个测验应用程序,它有一个用于整个游戏活动的计时器,您应该在指定的几分钟内回答尽可能多的问题..
在指定的分钟数结束后,它会将您带到显示您的分数的结果活动。在后按时,我创建了一个警告对话框,询问您是否要返回主菜单。如果单击“是”,页面应返回主菜单并停止/终止游戏活动。
但是,当我单击“是”时,它会返回主菜单,但当您仍在应用程序中的任何位置时,结果仍会显示我之前的游戏活动。也许我还没有真正完成游戏活动,.. 这是我活动中的计时器和后按 sn-p:
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();
}
【问题讨论】:
-
可能是你在结果activity中设置的数据在你结束activity时没有被清除,导致你再次访问activity时看到的是旧数据。
-
你没有停止倒计时。
-
我猜,只是猜,倒数计时器就像一个线程,即使你调用finish()它也会继续运行。尝试在计时器中添加一个布尔变量来控制它的运行。
标签: android android-activity kill-process