Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android中的回調請求的個人理解,android回調

android中的回調請求的個人理解,android回調

編輯:關於android開發

android中的回調請求的個人理解,android回調


Fragment類提供了管理“選項菜單”的回調函數onCreateOptionMenu(Menu,MenuInflater),調用它可以--創建“選項菜單”。

在需要“選項菜單”時,Android-OS通過Activity的FragmentManager調用Fragment的onCreateOptionMenu(Menu,MenuInflater),創建出來。

當用戶點擊“選項菜單”時,Fragment會收到onOptionItemSelected(MenuItem)方法的回調請求。

//選項菜單可以包含多個菜單項,通過檢查菜單項的ID,確定是哪一個,然後作出相應的動作。

 

那麼什麼是回調請求呢?????

從用戶的角度看,當我點擊“選項菜單”,會發生一件事(這個app是跳轉到另一個activity)。

代碼是在fragment中覆蓋onOptionItemSelected(MenuItem){//跳轉到另一個activity}。

 

先來看一個經典的回調函數的例子

模擬911事件-結果WTC(世貿大廈)被轟炸

1.這裡是接口、調用者、執行者

//相當於接口InA
public interface BoomWTC{
  //獲得拉登的決定
  public benLaDengDecide();

  // 執行轟炸世貿
  public void boom();
}

//相當於class A
public class At$911 implements BoomWTC{//相當於【背景1】
  private boolean decide;
  private TerroristAttack ta;//相當於【背景2】

  public At$911(){
    Date now=new Date();
    SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
    this.dicede= myFmt.format(dt).equals("01/09/11 09:44");
    this.ta=new TerroristAttack();
  }

  //獲得拉登的決定
  public boolean benLaDengDecide(){
    return decide;
  }

  // 執行轟炸世貿
  public void boom(){
    ta.attack(new At$911);//class A調用class B的方法傳入自己的對象,相當於【you call me】
  }
}

//相當於class B
public class TerroristAttack{
  public TerroristAttack(){
  }

  public attack(BoomWTC bmw){——這相當於【背景3】
    if(bmw.benLaDengDecide()){/*class B在方法中回調class A的方法,相當於【i call you back】*/
    } } }

2.這裡是主函數

public class $911{
  public static void main(String[] args){

At$911 $911=new At$911();
$911.boom();
} }

流程:在main()中創建911實例,調用boom()方法,該方法會調用911實例中的TerroristAttack實例的attack()方法,該方法新建911匿名實例,傳入attack()。

TerroristAttack的attack(BoomWTC bmw)接受一個實現BoomWTC接口的實例,並用接口變量bmw來引用傳入的911匿名實例。然後,bmw.benLaDengDecide()調用911的benLaDengDecide()方法,返回一個true(假設今天是9月11日),然後通過if判斷,執行轟炸。。。

對比來看:

androidOS main new activity.onMenuItemSelected new 911.boom fragment.onOptionItemSelected TerroristAttack.attack

 

因此當用戶點擊“選項菜單”時,Fragment會收到onOptionItemSelected(MenuItem)方法的回調請求,就是androidOS最終會調用onOptionItemSelected()響應--點擊選項菜單--這個事件

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