0

我有 3 个活动(a、b 和 c)。在活动 a 中,我有一个倒数计时器,它在几秒钟后开始活动 b。在活动 a 中,用户可以启动活动 c:

Intent myIntent = new Intent(a.this, c.class);
a.this.startActivity(myIntent);
finish();

使用此代码,我想完成倒数计时器活动 a 并启动 c。现在的问题:当用户启动 c 时,c 启动但倒计时没有停止并在完成时启动活动 b。为什么?我已经用倒数计时器完成了洞活动。我不明白。我也试过onDestroy()了,但它不起作用。我的倒计时:

new CountDownTimer(7000, 1000) {
  public void onTick(long millisUntilFinished) { }
  public void onFinish() { }
}.start();
4

3 回答 3

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);      
   }   
}

请记住,这是伪代码,可能存在错误/错误。它只是为了说明技术而不是工作代码。

于 2012-05-01T14:36:12.053 回答
0

当您使用 a.this.startActivity(myIntent) 开始新活动时;'a' 活动停止,并且从不执​​行 finish() 调用。您应该在开始“c”活动之前停止计时器。

于 2012-05-01T14:29:40.837 回答
0

覆盖活动 a 的 onPause() 函数以停止计时器 - 可能通过检查由任何按钮或操作启动活动 c 设置的布尔变量。

于 2012-05-01T14:56:38.830 回答