[Android/Java] listener/callback (1)

Boryuh
2 min readSep 9, 2020

--

本篇包含

  • 官方定義
  • 個人理解
  • 舉例
  • 應用
  • 原始碼

- 官方定義

以 Android 中最常用到的點擊監聽器為例,來看看官方怎麼說。

從官方原始碼來看, listener/callback 是以 interface 去宣告的,然後裡面定義了一個 onClick function 讓人實作,當 view 被 click 的時候,就會觸發 onClick 這個 function。

- 個人理解

callback 不會馬上執行,而是達到特定條件下才會被觸發,例如:按鈕被按下、連線取得資料後觸發等。

- 舉例

就以 Android App 最入門的按鈕來當範例吧,上 code 。

- 應用

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// bind
button = findViewById(R.id.button);

// set listener/callback
button.setOnClickListener(listener);
}

// 當 view 元件設定此監聽器(名為: listener)
// 該 view 元件被點擊的時候就會做 onClick 裡面的相應動作
private View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 當 view 被點擊的時候會觸發此 function
System.out.println("listener has been triggered.");

// 確認當前的 thread
System.out.println(Thread.currentThread().getName());
}
};

- 原始碼

Android-Java-Listener-Callback-1

--

--