gpt4 book ai didi

android - 如何打破 CountDownTimer

转载 作者:行者123 更新时间:2023-11-30 01:56:51 25 4
gpt4 key购买 nike

我是 android 的新手,我遇到了一个问题。

这是我的问题:我正在运行 CountDownTimer 30 秒,间隔为 5 秒。当它运行时,我为每个间隔做一个 Activity 。如果 Activity 返回肯定结果,我将停止计时器。如果计时器结束,我将宣布它失败。我尝试了很多方法,但我无法完成我需要的。

我不知道如何使用 CountDownTimerTimer?也许你这样做?

这是我的代码:

    public void StartTimeOutTimer() {
countDown timer = new countDown(30000, 5000);
timer.start();
}

public class countDown extends CountDownTimer{
ProgressDialog pd;

public countDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
pd = ProgressDialog.show(Activity_MapMain.this, "",
"Loading new location...", true, false);
}

@Override
public void onTick(long millisUntilFinished) {
//Do an activity get new location
//if OK stop CountDownTimer ;
}

@Override
public void onFinish() {
pd.cancel();
}
}

最佳答案

尝试改用 Handler。类似这样的事情:

Handler handler;
boolean result;

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
handler = new Handler();
handler.post(timerRunnable);
}


Runnable timerRunnable = new Runnable() {
int interval = 5000, period = 30000;
int count;
@Override
public void run() {
if (!result && count < period ) {
count += interval;
//call to the activity get new location with startActivityForResult()
handler.postDelayed(this, interval);
}
}
};



@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
result = true;
}
}

编辑如何为结果启动 Activity:

首先定义字段:

private final int CODE_NEW_LOCATION = 1;

在 Rubbable 里面放这样的东西:

 startActivityForResult(new Intent(MainActivity.this, LocationActivity.class), CODE_NEW_LOCATION);

在 LocationActivity 中定义返回值:

 boolean result;
//define the result
setResult(Activity.RESULT_OK);

关于android - 如何打破 CountDownTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com