是否有超时的Android InputStream类?

时间:2012-12-20 19:44:09

标签: android timeout inputstream

我目前在我的应用程序中使用InputStreamimport java.io.InputStream)并遇到了关于超时的问题。 InputStream似乎工作的方式是它等待一定量的位然后继续。对于我的应用程序,这在很多时候都有效,但有些情况下我希望读取因超时而失败。有谁知道这样做的方法?

我发现很多创建线程的示例与read()函数一起运行并取消它,但我想知道是否有现有的类允许我使用超时的InputStream。 / p>

2 个答案:

答案 0 :(得分:1)

我会使用AsyncTask<>。您可以尝试异步开始读取流,然后在您选择取消任务时,而不是阻止您的UI。文档 here

答案 1 :(得分:1)

这在很大程度上取决于您的阅读地点。如果它来自文件(或本地)套接字,则没有超时。如果它来自远程套接字,则可以在创建套接字时指定超时。如果它超时你应该得到一个例外。使用线程/ AsyncTask是可行的方法,但除非使用Java NIO,否则通常无法中断被阻止的读取。

不,这不是荒谬的,你是如何建议自己超时的?&#39;?有人必须发出超时信号,并且某人是某种监视器线程或操作系统引发错误。