倒数计时器结束时结束活动并呼叫另一个活动

时间:2014-03-28 22:23:11

标签: java android android-activity

我正在制作一个考试应用程序,用户可以从所选的主题领域尝试提问。例如,假设用户有20个问题需要回答。就像现在一样,当我开始向用户提供问题和选项集的活动时,倒数计时器启动。我现在要做的是,如果用户在时间结束之前未能回答所有20个问题,则应该自动触发另一个计算用户考试分数并显示结果的活动。实现这个的最佳方法是什么?我希望能够禁止用户在时间结束后继续参加考试。如有任何帮助,将不胜感激。

3 个答案:

答案 0 :(得分:1)

看看CountDownTimer(http://developer.android.com/reference/android/os/CountDownTimer.html)你可以用它做这样的事情:

 new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {

     }

     public void onFinish() {
         // start another activity here!
     }
  }.start();

答案 1 :(得分:0)

尝试使用Timer()

您可以在计时器结束时开始新活动。您以毫秒为单位进行设置。 为了开始新活动,您应该在UI线程上运行。

timer = new Timer();
timer.schedule(new TimerTask() { 
public void run() {
 yourActivity.this.runOnUiThread(new Runnable()
   public void run(){
   }        
 }
}, 1000);

答案 2 :(得分:0)

如果您的询问是在计时器启动后该怎么做而不是如何实现计时器,那么您可以开始一个新的行为,如此

if(timer <= 0)
{
    Intent intent = new Intent(context, YourNewActivity.class);
    startActivity(intent);  
    finish();
}

您也可以通过传递上下文,在当前活动的任何方法中执行此操作。

public void myMethod(Context mContext)
{
     if(timer <= 0)
     {
         Intent intent = new Intent(mContext, YourNewActivity.class);
         mContext.startActivity(intent);
         ((Activity)mContext).finish();
     }
}

别忘了完成()其他活动,用户可以只按下后退按钮并重新启动问题。