我們在開發的時候經常會用到callback,大家可能沒這麼在意,就比如
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//你的代碼
}
有或者btn_forget.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
這些都是Callback的具體實現,下面我們來好好講解下:
callback其實就是我們在A類中的一個B方法的一個在外部實現的方法
①首先在A類外面創建一個類就叫他LoginCallback.java,在這個類中我們定義一個變量類success,然後實現我們寫的這個success類,注意這個類必須是接口類,然後給這個類一個對外的暴露方法setSuccess()
public class LoginCallback{
private Success success;
public interface Success{
public abstract void doSuccess();
}
public void setSuccess(Success success) {
this.success = success;
}
public void dosometing(){
success.doSuccess();
}
}
②接下來我們就可以在A方法中聲明B方法。也就是我們的例子LoginCallback,然後在oncreate()方法中就可以調用我們的回調方法了
private LoginCallback mCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCallback.setSuccess(new Success() {
@Override
public void doSuccess() {
// TODO Auto-generated method stub
//對回調方法進行操作
}
});
}
就這樣我們就可以實現一個回調方法了。
這邊附上一個我之前寫的另一種類型的回調的源碼,很簡單,大家看看就懂的。
http://download.csdn.net/detail/iblue007/9064321
大家也可以看看這篇的博文。講的言簡意賅
http://m.blog.csdn.net/blog/han1202012/16887509