我目前在我的应用程序中使用 InputStream
(import java.io.InputStream
) 并且遇到了有关超时的问题。 InputStream
的工作方式似乎是它等待一定数量的位然后继续。对于我的应用程序,这在很多时候都有效,但在某些情况下,我预计读取会因超时而失败。有谁知道这样做的方法吗?
我发现了很多创建线程与 read()
函数一起运行并取消它的例子,但我想知道是否有一个现有的类可以让我使用 InputStream
超时。
最佳答案
这在很大程度上取决于您从哪里阅读。如果它来自文件(或本地)套接字,则没有超时。如果是来自远程套接字,可以在创建套接字时指定超时时间。如果它超时,你应该得到一个异常(exception)。使用 threads/AsyncTask
是可行的方法,但通常不能中断阻塞的读取,除非您使用的是 Java NIO。
不,这并不荒谬,您如何建议它“自行超时”?必须有人发出超时信号,并且有人是某种监视线程或操作系统引发错误。
关于android - 有超时的Android InputStream类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979348/