【发布时间】:2016-03-21 05:40:43
【问题描述】:
TL;DR:我的意图是从另一个线程开始花费太多时间,而从主线程开始非常快。我实际上不知道这是线程问题还是onFinish 方法的问题
所以,我有一个倒计时。从二十秒开始倒计时,onFinish()我有一个意图。我还定期根据millisUntilFinished 设置我的textView 的文本。 我注意到,在 textView 显示 1 second left 之后,意图在 3 秒后开始。
但是,如果我使用 onFinish 方法的外部的意图来切换活动,则下一个活动会很快开始。所以,
为什么从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();
}
谢谢,
鲁基尔
【问题讨论】:
-
尝试使用 MainActivity.this.startActivity(intent);或尝试使用 runOnUiThread
标签: java android multithreading performance android-intent