0

有没有办法为 InputStream 设置超时?

我当前的代码如下所示:

public class DownloadFile implements Runnable {
private EventHandler eh;
private String source;
private String destination;

public void run(){
    try {
        Log.d("Download", "Download... " + source);
        URL url = new URL(source);

        URLConnection connection = url.openConnection();
        connection.connect();

        int fileLength = connection.getContentLength();

        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream(destination + "t");
4

2 回答 2

3

我认为对于您的要求,您可以使用

HttpURLConnection.setReadTimeout()

Mab be 这些链接将对您有所帮助。

  1. 是否可以从 Java InputStream 中读取超时?
  2. 类 HttpURLConnection
  3. 我可以为 InputStream 的 read() 函数设置超时吗?
于 2012-10-16T12:21:39.940 回答
0

您可以启动一个 AsyncTask 或仅启动一个单独的线程并将其休眠超时时间,然后检查事务是否已准备好。或者更好的是,您可以向 Handler 发布延迟消息,然后检查您的任务是否准备就绪。您也可以使用计时器,但我认为 Handler 解决方案是最优雅的。

看看这个:http: //developer.android.com/reference/android/os/Handler.html

于 2012-10-16T12:20:27.600 回答