Callback非同步回撥介面
阿新 • • 發佈:2019-02-17
/** * 用於網路請求結果的回撥的抽象類,使用該類可以保證網路請求在主執行緒發起,在子執行緒回撥 * 使用的非同步任務,並且保證了非同步任務的建立在主執行緒執行 */ public abstract class Callback<T> { private AsyncTask<Void, Void, Void> asyncTask; private T obj; private int code; private boolean status; public Callback() { asyncTask = new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { return null; } @Override protected void onPostExecute(Void v) { if (status) Callback.this.onSuccess(obj); else Callback.this.onFailure(code); } }; } public void notifyUI(T obj, int code, boolean status) { this.obj = obj; this.code = code; this.status = status; this.asyncTask.execute(); } protected abstract void onSuccess(T obj); protected abstract void onFailure(int code); }
一個小朋友寫的。