1. 程式人生 > >java 回撥的 基本使用場合 和 講解 以及 HttpUtil邏輯封裝

java 回撥的 基本使用場合 和 講解 以及 HttpUtil邏輯封裝

回撥 邏輯圖

在這裡插入圖片描述

HttpCallbackListener 介面,也就是 耗時操作結束後返回給 呼叫方 的通道

public interface HttpCallbackListener {
    void onFinished(String response);
    void onError(Exception e);
}

HttpUtil 耗時操作在這裡進行

public class HttpUtil {
    public static void sendHttpRequest(String address, final HttpCallbackListener callbackListener)
    {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(5000);
                    callbackListener.onFinished("請求完成");
                    Thread.sleep(5000);
                    callbackListener.onError(new Exception());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

MainActivity.java 呼叫方

    public void callbackTest(View view) {
        HttpUtil.sendHttpRequest("http://www.baidu.com", new HttpCallbackListener() {
            @Override
            public void onFinished(String response) {
                Log.i(TAG, "請求成功: "+response); // 列印結果
            }
            @Override
            public void onError(Exception e) {
                Log.i(TAG, "請求失敗: ");
            }
        });
    }