Java 显示倒计时,并在倒计时结束时切换到其他活动。

Java 显示倒计时,并在倒计时结束时切换到其他活动。,java,android,timer,Java,Android,Timer,我的活动在10秒后打开另一个活动。我知道如何在一段时间后打开另一个活动。但我想做的是每秒钟计数,这样我就可以向用户显示它。我该怎么做?在我的活动中,我有一个文本视图,我想在其中显示倒计时 public class RestingActivity extends Activity{ private Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) {

我的活动在10秒后打开另一个活动。我知道如何在一段时间后打开另一个活动。但我想做的是每秒钟计数,这样我就可以向用户显示它。我该怎么做?在我的活动中,我有一个文本视图,我想在其中显示倒计时

public class RestingActivity extends Activity{
    private Handler mHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_resting);

    mHandler.postDelayed(mLaunchTask, 10000);
}

public void skipRestTime(View view) 
{
    finish();
}


private Runnable mLaunchTask = new Runnable() {
    public void run() {
        finish(); // Closing the activity
    }
 };

}

请核对我的答案。这对我来说很好。希望对你有帮助。请试着让我知道。谢谢

活动\u main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:background="#0090FF"
    android:padding="10dp"
    android:keepScreenOn="true" >

    <TextView
    android:id="@+id/txtCountDown"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="30dp"
    android:textColor="#fff" />

</RelativeLayout>
import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    private static TextView txtCountDown;
    private static CountDownTimer countDownTimer = null;
        private static final long startTime = 120 * 1000;
        private static final long interval = 1 * 1000;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtCountDown = (TextView) findViewById(R.id.txtCountDown);
        countDownTimer = new MyCountDownTimer(startTime, interval);
        if(txtCountDown!=null){
            txtCountDown.setText(String.valueOf(startTime / 1000));
        }
        countDownTimer.start();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public class MyCountDownTimer extends CountDownTimer {

      public MyCountDownTimer(long startTime, long interval) {
          super(startTime, interval);
      }

      @Override
      public void onFinish() {
          if(txtCountDown!=null){
            txtCountDown.setText("Time's up!");
          }
      }

      @Override
      public void onTick(long millisUntilFinished) {
          if(txtCountDown!=null){
            txtCountDown.setText("" + millisUntilFinished / 1000);
          }
      }
   }
}
你可以用这个。您只需传递将显示倒计时的
文本视图
,并设置
CountDownListener
。然后,实施
onCountDownEnd
以更改活动


我使用
处理程序
,它比
倒计时程序
准确得多。当我实现倒计时动画时,我对这些类进行了时间测试。

我试过了,一切正常。但是,当倒计时还剩一秒钟时,关闭活动需要更多的时间。看起来它又增加了一秒钟。你也有同样的问题吗?