1

次のような非常に単純なプログラムhttpダウンロードプログラムがあります。ファイルは非常に小さく、200K のようです。

問題は、3G 接続を使用しているときに、1 つのダウンロードが非常に長い間停止することがあるということです。しかし、私は 3G ネットワークが良好であることを意味する 3G 接続で YouTube を非常によく見ることができます。コードに何か問題がありますか?

wifi接続で使う分には問題ありません。

for (int chunkno = 0; chunkno < 10000000; ++chunkno)
{
try
{
    AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
    HttpGet request = new HttpGet("http://ipaddress/vbr_100.mp4");   
    HttpResponse response = client.execute(request);

    recvbytes = response.getEntity().getContentLength();

    File f = new File(Environment.getExternalStoragePublicDirectory("bill"), "f");
    if (!f.exists())
    {
        f.createNewFile();
    }

    response.getEntity().writeTo(new FileOutputStream(f));

}
catch (IOException ex)
{
}
}
4

1 に答える 1

0

巨大なファイルのダウンロードに関連するすべての問題を処理するandroidDownloadManagerパッケージを使用することをお勧めします。

Androidドキュメントサイトからコピー:

The download manager is a system service that handles long-running HTTP downloads. Clients may request that a URI be downloaded to a particular destination file. The download manager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across connectivity changes and system reboots.

使用例をここDownloadManagerに示します。

お役に立てれば !!

于 2013-03-12T07:05:47.753 に答える