Android使用Callback做為傳遞資料/通知的方法
在一個常見的實作上的情境:當使用者在執行某個行為之後,就執行某些行為。例如當API接收成功之後就跳轉到某個頁面,API接收失敗的時候顯示錯誤訊息,除了可以使用BroadcastReceiver,另外也可以使用Callback的方式達成。 以App常見的實作功能-接收API為例,實作的方式如下: 1.先建立一個Interface。 首先在interface裡面製作兩個function,一個是執行結束要執行的行為:loadComplete(),另一個是顯示訊息:showMsg(String msg) /** * Api執行完之後的callback */ public interface ApiCallback { void showMsg(String msg); //要顯示的訊息 void loadComplete(); //api執行完成 } 2.在觸發行為的class裡產生Callback實體。 舉例來說,如果是在API執行之後一定會有該API自己所屬的成功/失敗callback function(或稱method),也就是如果API接收成功了就執行某個function(以Volley來看是onResponse()),而失敗了就執行某個function(以Volley來看是onError())。 於是就可以在Volley的onResponse()加入interface裡的loadComplete(),而在onError()加入showMsg(String msg) public class MyApi{ public ApiCallback mCallback; public DailyNewsApi(Context context) { this.mContext = context; mCallback = (ApiCallback) mContext; } @Override public void onError(VolleyError error) { super.onError(error); mCallback.showMsg("登入失敗"); //傳送失敗訊息內容 ...