TL; DR:我的意图是花太多时间从另一个线程开始,而从主线程开始非常快。我实际上不知道这是线程还是onFinish
方法的问题
因此,我有一个倒数计时器。它从二十秒开始倒数,而onFinish()
我有一个意图。我还定期根据millisUntilFinished
设置textView的文本。我注意到,在textView说1 second left
之后,意图在3秒钟后开始。
但是,如果我通过使用onFinish
方法的OUTSIDE的意图来切换活动,则下一个活动将快速启动。所以,
为什么从onFinish
方法启动意图需要比平时更长的时间?
根据对计时器的小测试,我决定我需要一种更好,更快的方法来启动我的意图,因为显然,onFinish方法会在更多时间之后启动,然后计时器才真正启动。那么,我应该怎么做才能更快地开始我的意图?我需要立即采取行动...
public void startTimer() {
timer = new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) millisUntilFinished/1000;
timetext.setText(seconds + ":00");
}
public void onFinish() {
Intent intent = new Intent(MainActivity.this, GameOver.class);
intent.putExtra("score", score); // pass your values and retrieve them in the other Activity using keyName
intent.putExtra("classname", "com.example.ruchir.swapproperties.MainActivity");
startActivity(intent);
}
}.start();
}
谢谢,
鲁奇尔
最佳答案
尝试将startActivity(intent)
放置在计时器外部,如下所示:
public void startTimer() {
timer = new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) millisUntilFinished/1000;
timetext.setText(seconds + ":00");
}
public void onFinish() {
Intent intent = new Intent(MainActivity.this, GameOver.class);
intent.putExtra("score", score); // pass your values and retrieve them in the other Activity using keyName
intent.putExtra("classname", "com.example.ruchir.swapproperties.MainActivity");
}
}.start();
startActivity(intent);
}