gpt4 book ai didi

java - AsyncTask - 如何在 AsyncTask 内使用带有 postDelayed(Runnable, int) 的处理程序?

转载 作者:行者123 更新时间:2023-12-02 10:52:10 24 4
gpt4 key购买 nike

我正在尝试从 BufferedInputStream 进行写入,我之前使用了 while 语句并且效果很好,但现在我想延迟写入每个250毫秒的循环。因此,我考虑将 HandlerpostDelayed 一起使用。

这是我使用 while 的代码:

while (count = input.read(data)) > 0){
//File writing...
}

但是当我把它变成这样时:

 new Handler().postDelayed(new Runnable() {
@Override
public void run() {
try {
//File writing...
} catch (IOException e) {
}
}
}, 250);

我得到了这个RuntimeException:

无法在未调用 Looper.prepare() 的线程内创建处理程序。

我认为,它说我无法在线程(AsyncTask/Thread)内创建处理程序,但我希望有人对此有解决方法。提前致谢!

最佳答案

尝试调用 Thread.sleep() 而不是在处理程序上调用 postDelayed,因为在 doInBackround 方法中,您已经处于后台线程中,并且在较小的时间间隔内调用 sleep 没有问题

  try {
Thread.sleep(250)
//File writing...
}catch (IOException e) {

}catch (InterruptedException e) {

}

`

关于java - AsyncTask - 如何在 AsyncTask 内使用带有 postDelayed(Runnable, int) 的处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083286/

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