JAVA 最簡單的回撥理解
阿新 • • 發佈:2019-01-10
最簡潔的回撥理解:
1:不是耗時操作,那是非同步
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 中呼叫就可以。