android先行ダウンロード画像

2024 ワード

大幅に早めにユーザーの情報を修正するには、クライアントが先に情報を引き出して、伝える必要があります.これは間違いありませんが、奇抜なのは画像もこのように実現して、先にダウンロードして、それからアップロードして、製品といろいろな根拠を通じて努力した後、失敗して、このように実現するしかありません.背景:1,2,3,4の3つの順のFragmentがあり、1つ目のFragmentに入ると、複数の画像のダウンロードが行われ、4つ目のFragmentが表示されて使用され、3つ目のFragmentが4つ目のFragmentにジャンプしようとしたときに判断し、ダウンロードが完了したら直接ジャンプし、loadingボックスの提示が完了しなければダウンロードが完了するまで待つ.実装方法:Listener+グローバル変数(このグローバル変数はActivityに記載されており、この4つのfragmentはすべてこの変数を得ることができる)は、ここでグローバル変数とListenerを使用することは不可欠であり、グローバル変数を使用することはFragment 3に達していない場合、つまりListenerがnewから出ていない場合、Fragment 3のダウンロードが完了したことを通知する.Listenerの役割は、Fragment 3ジャンプFragment 4がまだダウンロードが完了していない場合に、ダウンロードを待って、ダウンロードが完了したことを知ってからジャンプすることです.
ステップ1、Fragment 1でダウンロードを開始し、ダウンロード終了後、Listenerから通知を受け、グローバル変数を変更する.
public void downloadRejectImages(Map images) {
        new AsyncImageLoader().loadImages(images, new AsyncImageLoader.ImageCallback() {
            @Override
            public void imageLoaded() {
                loadImageStatus = SUCC_MSG;
                if (mOnImageLoadListener != null) {
                    mOnImageLoadListener.onSuccess();
                }
            }
            @Override
            public void imageLoadFailed() {
                loadImageStatus = FAIL_MSG;
                if (mOnImageLoadListener != null) {       mOnImageLoadListener.onFailure();
                }
            }
        });  

ステップ2、Fragment 3 newリスナー
 ((RealNameActivity) mActivity).setOnImageLoadListener(new RealNameActivity.OnImageLoadListener() {
               @Override
               public void onSuccess() {
                   completeInfos();
               }

               @Override
               public void onFailure() {
                   completeInfos();
               }
           });  

ステップ3、Fragment 3ジャンプFragment 4イベントがトリガーされた場合、グローバルがフラグビットであり、ダウンロードに成功したか否かを判断し、成功しなければloadingボックスを回し、Listener通知を待つ
//         Fragment    ,      

これによりFragment 4への保証が完了し、ダウンロード操作が完了する.