結合Observable類和AsyncTask,封裝一個帶回調的異步任務類
bservable結合AsyncTask實現的一個帶回調的異步任務
1.設計目的
該類的設計旨在省去書寫異步任務時,再次添加回調的方法
2.使用
a. 直接聲明使用
CommonTask<String, String> task = new CommonTask<String, String>() { @Override public String doInBackground(String params) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } return "參數為>>" + params + "\n休眠3秒異步任務2執行結束"; } }; // 添加回調 task.addObserver(new Observer() { public void update(Observable observable, Object data) { // 參數在這里強轉成需要個類型 (String )data,(boolean)data , mText.append((CharSequence) data); mText.append("\n"); } }); // 啟動任務 task.startTask("這是異步任務2");
b. 繼承CommTask,根據需要,startTask時無參數時重寫doInBackGround()方法,帶參數則重寫doInBackGround(A a)方法
CommonTask<String, String> task = new CommonTask<String, String>() { @Override public String doInBackground(String params) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } return "參數為>>" + params + "\n休眠3秒異步任務2執行結束"; } }; // 添加回調 task.addObserver(new Observer() { public void update(Observable observable, Object data) { // 參數在這里強轉成需要個類型 (String )data,(boolean)data , mText.append((CharSequence) data); mText.append("\n"); } }); // 啟動任務 task.startTask("這是異步任務2");
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!