改造は、要求ごとにダウンロードプログレスコールバックを受け入れるようにする方法?

ジェシー市:

背景:
私は改造を使用するアンドロイドで進捗AsyncTaskからのコールバックとのHttpURLConnectionで私の古いダウンロードコードを移行しようとしています。しかし、私は、デフォルトでは、このようなコールバックを提供していない改造/ okhttp気づきました。
私はたくさんの検索を行って、公式を含むいくつかのアプローチ、見つけてきたソリューションインターセプタ、カスタムResponseBodyによって行われokhttpによっては、。しかし、それらのどれも実際に私のニーズを満たしていません。
私が欲しいもの:
このコードの問題は、コールバックが実際に私は必要なものが適用されている間、それは、okhttpクライアントに接続可能インターセプターに取り付けられていることである異なるため、コールバックオブジェクトを要求など(異なるAndroidのUI要素の変更。 )
私が試したもの:
私は要求ごとのコールバックを実装したい場合は私が理解するために、単一の要求を単一の改造・コール・インタフェース・インスタンスによってマークされている、だから、それはコールのインスタンスまたはRequestBodyインスタンスにアタッチする必要があります。
残念ながら、私はokhttpインターセプター内部の改造コールインスタンスを取得する方法を見つけることができませんでした。どちらも私はそれにカスタムコールバックオブジェクトを添付することはできません。
カスタムRequestBodyのアプローチとしては、それが実現可能と思われます。それは、要求をGETになれば何RequestBodyは改造を使用して設定することはできませんので、しかし、それが再び使用可能ではありません。
それを達成するための任意のエレガントな方法はありますか?そして、「エレガント」で、私は私が要求を維持したくない意味- >、いかなる形で自分自身をマップするコールバックされ得るにもメモリリークの原因あまり注意していない場合。

ジェシー・ウィルソン:

あなたが何かを見つけることができるかもしれない@Tag、および/またはInvocationタグは、あなたがインターセプタで利用できるようになりますあなたの改修リクエストのパラメータを定義できます。呼び出しは似ているが、それは余分なPARAMTERを必要としません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=26631&siteId=1