FinalBitMapを使用して画像をロードし、urlエラーで他のurlをロードする解決方法


最近、ネットワーク環境が悪い場合、ピクチャのロードが遅いという問題を解決しました.まず、ローカルのサーバにアクセスしてピクチャを取得し、成功しなければリモートサーバにアクセスすることを考えています.ps:ローカルサーバへのアクセスが速く、ネットワーク環境の影響をほとんど受けません.私は高速開発フレームワークFinalBitMapで画像のロードを実現していますが、どのように実現するかは説明しません.ここではimageViewとurlを1つ伝えるだけで画像のロードを実現することができます.しかし、問題はここで、Afinalフレームワークにはピクチャurlエラー、ピクチャロードエラーのコールバックはありません.だからここは自分で方法を考えなければなりません.
まず自分の考えを話して、後でコードを添付します.コアは,最初のurlが接続できるかどうかを判断し,対応処理を行う.
1、urlが利用可能かどうかを判断する
public boolean checkURL(String url) {
        boolean value = false;
        try {
            HttpURLConnection conn = (HttpURLConnection) new URL(url)
                    .openConnection();
            conn.setConnectTimeout(100);
            int code = conn.getResponseCode();
            if (code != 200) {
                value = false;
            } else {
                value = true;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return value;
        }
        return value;
    }
ps:ここで注意しなければならないのは、タイムアウト時間を自分で設定することです.そうしないと、ローカルサーバに接続してデフォルトのタイムアウトを知るまで
2、サーバーが接続可能かどうかをチェックする起動戻るurlが利用可能かどうかによって、loadの異なるurl
new Thread(new Runnable() {
            @Override
            public void run() {
                String fasong_img = null;
                // TODO Auto-generated method stub
                if (checkURL(img_2)) {
                    fasong_img = img_2;
                } else {
                    fasong_img = imageUrl;
                }
                Message msg = new Message();
                msg.obj = fasong_img;
                handler1.sendMessage(msg);
            }
        }).start();
3、受信メッセージ処理
 Handler handler1 = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String m_img = (Xinxi) msg.obj;
           

            fb.display(imgeview, m_img);           
        }
    };

これにより,サーバの状態に応じて上記の効果を実現できる.