2017-06-11 24 views
0

私はXamarin androidを使用してモバイルアプリを実装しています。私はボタンクリックで両方の.PDFと.Mobiファイルをダウンロードするコードを実装しました。私は以下のコードを使用しています。ダウンロードしたファイルを表示する方法Xamarin Androidを使用して別のダウンロードを実行中の場合

... 
     await Task.WhenAll(DownloadPDF(), DownloadMobi()); 
    } 

    private async Task DownloadPDF() 
    { 
     var httpclient = new HttpClient(new AndroidClientHandler()); 
     using (var stream = await httpclient.GetStreamAsync("http://files/file.pdf")) 
     using (var file = System.IO.File.Create("path/to/file.pdf")) 
     { 
      await stream.CopyToAsync(file); 
      await file.FlushAsync(); 
     } 
    } 

    private async Task DownloadMobi() 
    { 
     var httpclient = new HttpClient(new AndroidClientHandler()); 

     using (var stream = await httpclient.GetStreamAsync("http://files/file.mobi")) 
     using (var file = System.IO.File.Create("path/to/file.mobi")) 
     { 
      await stream.CopyToAsync(file); 
      await file.FlushAsync(); 
    } 
} 

このファイルは両方同時にダウンロードされます。私は最初にPDFファイルをダウンロードしたいと思います。 PDFファイルをダウンロードしたら、ボタンテキストを「ダウンロード」から「PDFを見る」に変更する必要があります。 [PDFを表示]をクリックすると、PDFリーダーでファイルを開く必要があります。モバイルファイルのダウンロードは、このプロセスの後に開始され、ダウンロードはバックグラウンドで行われる必要があります。 これを達成するためにあなたのアイデアをお聞かせください。

+1

こんにちは。私はこれが十分な情報ではないと思います。これまでに何を試しましたか?残りのコードはどこにありますか? – woelliJ

答えて

0

あなたはUIのものを表示していないので、あなたはそれを省略します。代わりに、書き込みの

await Task.WhenAll(DownloadPDF(), DownloadMobi());

行う。これは、PDFダウンロードタスクの後に次のタスクの実行を継続しますTask

var task = DownloadPDF(); 
task.ContinueWith((pdfDownloadTask)=> DownloadMobi()); 

の次

await DownloadPDF(); 
// update button to display "View PDF" 
// add button click listener (optional if it's already registered) 
// open file in PDF reader 
await DownloadMobi(); 
関連する問題