1. 程式人生 > >JAVA 最簡單的回撥理解

JAVA 最簡單的回撥理解

最簡潔的回撥理解:
1:不是耗時操作,那是非同步

2:可以理解為:下級完成任務交代給上級的一種方式

例子:

程式設計師和總監,程式設計師要去完成一個開發任務,開發完了告訴總監。

有三個過程:
1:程式設計師開發任務
2:完成了告訴總監

3:程式設計師和總監的聯絡方式

過程程式碼:

/**
 * Author:   Chen.yuan
 * Email:    [email protected]
 * date:     2017/4/12 10:35
 * describe: 程式設計師開發任務
 */
public class Employee {
    public Callback mCallback=null;
public Employee(){}; public Employee (Callback callback){ this.mCallback=callback; } public void setCallback(Callback callback){ this.mCallback=callback; } public void doSomething(){//程式設計師開發任務 mCallback.callback("我做完了");//完成了告訴總監 } }
總監實現介面
/**
 * Author:   Chen.yuan
* Email: [email protected] * date: 2017/4/12 10:33 * describe: */ public class Boss implements Callback{ @Override public void callback(String res) { System.out.print(res); Log.d("結果:",res); } public void getResult(){ Employee employee=new Employee(this);//傳遞本身已經實現Callback物件,理解為程式設計師與總監的聯絡方式
employee.doSomething(); } }
定義介面:
/**
 * Author:   Chen.yuan
 * Email:    [email protected]
 * date:     2017/4/12 10:32
 * describe:
 */
public interface Callback {
    void callback(String result);
}

驗證結果:

public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//        Employee employee=new Employee();
//        employee.setCallback(new Boss());//核心程式碼
//        employee.doSomething();
Boss boss=new Boss();
boss.getResult();
}
}

具體demo:下載 點選開啟連結 http://download.csdn.net/detail/hubeiqiyuan/9811504 這個是android studio版本 eclipse版本直接在main 中呼叫就可以。