一個(gè)需要多個(gè)步驟的且占用大量時(shí)間的I/O操作在App初始化的時(shí)候進(jìn)行。想請(qǐng)問(wèn)大家,這個(gè)怎么操作,是用事件驅(qū)動(dòng)(如Android中的Handler,iOS中的NotificationCenter),還是直接使用回調(diào)函數(shù)好。
這個(gè)其實(shí)Android封裝了Handler的一個(gè)異步類就很好啦。 AsyncTask,你可以直接在doInBackground里面去做這個(gè)一個(gè)個(gè)的步驟,一個(gè)步驟完成了可以publishProgress一下。http://developer.android.com/reference/android/os/AsyncTask.html
class MyTask extends AsyncTask {
public void doInBackground(Void... params) {
// step 1
int resultCode = step1();
if (resultCode == 0) {
// 失敗
cancel(true);
return;
}
publishProgress(1);
// ...
}
public void onCancelled() {
// 某一步失敗了取消
}
public void onProgressUpdate(Integer... progress) {
// 自定義的階段
}
}