1. 程式人生 > >Callback機制在Android中的應用場景

Callback機制在Android中的應用場景

Callback是什麼?

當我們需要把耗時操作傳送到子執行緒執行時, 需要在耗時操作完成時將結果放到主執行緒來呈現或者再處理時, 我們需要在子執行緒主動地回頭呼叫主執行緒中處理結果的方法, 這種回撥式的機制就是Callback.

如何使用 Callback?

主執行緒:
//呼叫包含子執行緒以及耗時操作的方法, 並注入匿名內部類, 其中的onSuccess作為回撥方法
Service.login("xxx", "xxx", new Service.Callback<String>() {

	@Override
	public void onSuccess(String result) {
		System.out.println(result);
	}

});
子執行緒:
public class Service {
	public static void login(String account, String password, final Callback<String> callback) {
		{//假設這對花括號內部是子執行緒環境
			//.
			//.
			//.
			//一系列費時處理之後
			String result = "xxx";
			callback.onSuccess(result); // 主動呼叫主執行緒注入的onSuccess方法
		}
	}

	public static abstract class Callback<T> {
		public abstract  void onSuccess(T t) ;
	}
}


Callback的使用場景

Android中需要自定義的使用callback主要是在網路訪問上, 網路訪問是一個耗時操作, 不能馬上返回結果, 因此結果的返回就不能直接使用return, 這裡就需要使用Callback機制, 在網路訪問完成時, 主動呼叫結果處理函式