Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Callback淺談

Android Callback淺談

編輯:關於Android編程

一.簡介,例子

 

CallBack是回調的意思,回調函數或者回調方法是軟件設計與開發中一個非常重要的概念,掌握回調函數的思想對程序員來說(不管用哪種語言)是非常必要的。

什麼是回調函數呢?回調函數就是預留給系統調用的函數,而且我們知道該函數被調用的時機。這裡有兩點需要注意:第一點,我們寫回調函數不是給自己調用的,而是准備給系統在將來某一時刻調用的;第二點,我們應該知道系統在什麼情形下會調用我們寫的回調函數。

舉個現實生活中回調函數的例子,我們平時考試答題的第一件事是干嘛?沒錯,是寫上學號和姓名。這裡注意了,我們填寫學號和姓名不是給自己看的(即該方法不是給自己調用的),而是給老師登記分數時看的(預留給系統將來調用),這其實就是一個回調的應用。

下面再來看一下Android中應用到回調的場景。

場景一:

 

Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new Button.OnClickListener() {
  //回調函數  @override
  publicvoid onClick(View v) {
    buttonTextView.setText(按鈕被點擊了);
  }
});

 

上面的代碼給按鈕加了一個事件監聽器,這其實就是回調最常見的應用場景之一。我們自己不會顯示地去調用onClick方法。用戶觸發了該按鈕的點擊事件後,它會由Android系統來自動調用。

場景二:

 

@Override
publicvoid onCreate(Bundle saveInstanceState) {
  super.onCreate(saveInstanceState);
  // You code...}
@Override
publicvoid onResume() {
  super.onResume();
  // You code...}

 

上面的方法大家就更熟悉了,這是Android系統在Activity類中設置的回調函數,在Activity生命周期的不同階段,Android系統會自動調用相應的方法(onCreate, onPause, onResume,onDestroy等等)

  以上是兩個Android中用到回調的場景,他們的代碼實現可能不同,但是思想上是相近的,都是回調思想的體現。下面,我們在Java中分別模擬這兩個場景。

首先模擬注冊事件監聽器。先寫一個監聽器接口

 

package com.listener;
/**
 * 點擊監聽器接口
 *
 */publicinterface MyOnClickListener {
    publicvoid onClick();
}

 

然後寫一個我們自己的Button類

 

package com.listener;
publicclass MyButton {
    private MyOnClickListener listener;
    
    /**
     * 設置具體點擊監聽器
     * @param listener 點擊監聽器實現類
     */
    publicvoid setOnClickListener(MyOnClickListener listener) {
        this.listener = listener;
    }
    
    /**
     * 按鈕被點擊
     */
    publicvoid doClick() {
        listener.onClick();
    }
}

 

最後模擬Client端的注冊監聽器和觸發點擊操作。

 

package com.listener;
publicclass Client {
    publicstaticvoid main(String[] args) {
        MyButton button =new MyButton();
        //注冊監聽器        
        button.setOnClickListener(new MyOnClickListener() {

            @Override
            publicvoid onClick() {
                System.out.println(按鈕被點擊了);  
            }
            
        });
        //模擬用戶點擊        
       button.doClick();
    }
}

 

以上就是回調思想在Android中事件監聽的運用,我們再模擬第二個場景,回調在activity生命周期方法調用的體現。由於比較簡單,我就不多做解釋了,大家直接看代碼。

 

package com.activity;
public abstract class Activity {
    protectedvoid onCreate() {
        System.out.println(創建准備~~~~~~~);
    }
    
    protectedvoid onDestroy() {
        System.out.println(銷毀准備~~~~~~~~);
    }
}

package com.activity;
publicclass ConcreteActivity extends Activity {
    @Override
    protectedvoid onCreate() {
        super.onCreate();
        System.out.println(創建中!!!);
    }
    
    @Override
    protectedvoid onDestroy() {
        super.onDestroy();
        System.out.println(銷毀中!!!);
    }
}

package com.activity;
publicclass Client {
    publicstaticvoid main(String[] args) {
        Activity activity =new ConcreteActivity();
        activity.onCreate();
        activity.onDestroy();
    }
}

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved