Từ:
17:20 23/09/2012
Bài:
3
Cảm ơn:
2
Thích:
0
Các fiter nói rất chuẩn.
Fiter @tut4rever nói và làm ví dụ bằng js cmnr. Callback - "Mày không cần quan tâm đến tao, khi nào t làm xong t sẽ gọi lại cho mày"
Để xử lý vấn đề này thì t thường xây dựng một interface tại lớp API (trong bài toán t đang đề cập) có chức năng làm callback - hay actionListener. Khi đó phương thức login sẽ được viết như thế này
login(string uid, string pwd, MyCallback cb){ //MyCallback là tên interface của t
string json = "";
// xử lý lấy data từ svr (có thể dùng asynctask để biết khi nào tiến trình kết thúc)
// khi task kết thúc json = data; cb.onAction(json);
}
Tại class cần dùng phương thức login này thì cần phải implement(s) các callback của class api( có thể implement theo class hoặc inline - cách này có vẻ tiện hơn)
btnLogin.setOnClickListener(new OnClickListener(){
onClick(View v){
//show dialog
//validate input data
Api.login(uid, pwd, new MyCallback(){
onAction(Data data){
// xử lý data
// tắt dialog
}
})
}
});
Khá thú vị, ai có đề tài gì hay thì bỏ lên đây ace chia sẻ cùng mọi người cho vui :)