我有3项活动(a,b和c)。在活动中,我有一个倒计时器,它在几秒钟后开始活动b。在活动中,用户可以启动活动c:
Intent myIntent = new Intent(a.this, c.class);
a.this.startActivity(myIntent);
finish();
使用此代码我想完成countdowntimer活动a并启动c。现在的问题是:当用户启动c时,c开始但倒计时没有停止,并在完成后启动活动b。为什么?我用钻孔计算器来完成洞穴活动。我不明白。我也试过onDestroy()
,但它不起作用。
我的倒计时器:
new CountDownTimer(7000, 1000) {
public void onTick(long millisUntilFinished) { }
public void onFinish() { }
}.start();
答案 0 :(得分:2)
public class a extends Activity {
CountDownTimer timer;
public void onCreate(Bundle bundle)
{
// ..
timer = new CountDownTimer(7000, 1000) {
public void onTick(long millisUntilFinished) { }
public void onFinish() {
Intent myIntent = new Intent(a.this, b.class);
a.this.startActivity(myIntent);
}
}.start();
}
public void startActivityC()
{
timer.cancel();
Intent myIntent = new Intent(a.this, c.class);
a.this.startActivity(myIntent);
}
}
请记住,这是伪代码,可能存在错误/错误。它只是为了说明技术而不是工作代码。
答案 1 :(得分:0)
使用a.this.startActivity(myIntent)开始新活动时; 'a'活动停止,并且从不执行finish()调用。你应该在开始'c'活动之前停止计时器。
答案 2 :(得分:0)
覆盖活动a的onPause()函数以停止计时器 - 可能通过检查由任何按钮或动作设置的布尔变量来启动活动c。