gpt4 book ai didi

android - 在 Android 的后台线程中使用 CountDownTimer

转载 作者:行者123 更新时间:2023-11-29 17:45:02 26 4
gpt4 key购买 nike

我想使用 CountDownTimer 从仅计算剩余时间的后台线程更新 UI 线程中的文本。

我将一个线程子类化并在其构造函数中传递主线程处理程序,并在 run 方法中创建一个新的 CountDownTimer 以更新主 ui 线程中的 TextView ,如下所示:

class MyCounter extends Thread
{
private Handler uiHandler;
private long timeToCount;

public MyCounter(Handler handler, long time)
{
this.uiHandler = handler;
this.timeToCount = time;
}

public void run()
{
new CountDownTimer(timeToCount, 1000){
public void onTick(long millisUntilFinished) {
Message msg = Message.obtain();
String timeString = //....here I conver millisUntilFinished to String format
msg.obj = timeString;
uiHandler.sendMessage(msg);
}

.... //Other method of CountDownTimer
}.start();
} //end of run
} //end of thread class

我创建了 MyCounter 线程并在我的 Activity UI(主线程)上调用 start 并传递在主线程中创建的处理程序。在我的主要 Activity 中调用开始后,我似乎没有调用 CountDownTimer。

有什么想法吗?

最佳答案

我认为为了更新 Activity 中的 TextView ,您必须使用 runOnUiThread例如:

        runOnUiThread(new Runnable() {
@Override
public void run() {


textview1.setText(content);

});

关于android - 在 Android 的后台线程中使用 CountDownTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27265760/

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