TL;DR:我的 Intent 从不同线程启动需要太多时间,而从主线程启动速度非常快。我实际上不知道这是线程问题还是 onFinish
问题方法
所以,我有一个倒计时器。从二十秒开始倒计时,onFinish()
我有一个 Intent 。我还定期根据 millisUntilFinished
设置我的 textView 的文本。 我注意到,在 textView 之后显示 1 second left
, Intent 在 3 秒后开始。
但是,如果我使用 onFinish
外部的 Intent 来切换 Activity 方法下一个 Activity 很快开始。所以,
为什么从onFinish
开始一个 Intent 方法需要比平时更长的时间?
根据我对计时器的小测试,我决定需要一种更好、更快的方式来启动我的 Intent ,因为显然,onFinish 方法在计时器实际启动的时间更长后启动。那么,我应该怎样做才能更快地开始我的 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");
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);
}
关于java - 显示新屏幕需要太多时间! (线程也许...?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289105/