結合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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!