2014-01-18 34 views
1

例如支持,我有一個方法,在我的活動類,看起來像這樣Android中的代碼會發生什麼情況未在舊設備

ViewTreeObserver observer = buttonsContainer.getViewTreeObserver(); 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
        observer.removeOnGlobalLayoutListener(mButtonsObserverListener); 
       } else { 
        observer.removeGlobalOnLayoutListener(mButtonsObserverListener); 
       } 

我可以抑制lint警告,但在舊的Android會發生什麼2.2代碼將在哪裏執行?舊SDK中沒有「removeOnGlobalLayoutListener」函數,它如何在該平臺上編譯和運行?

回答

2

由於您的android:minSdkVersion足夠高,所以它編譯通過。它也將被安裝在你的設備上。你的應用程序將繼續運行,直到它必須執行未知的代碼。你的應用程序現在只會崩潰。

你爲什麼不在模擬器上自己嘗試一下。

1

你的代碼會拋出一個MethodNotFoundException,你的應用程序可能會崩潰,或者 - 如果有的話 - 跳轉到周圍的try/catch區塊。

(在Android 1.6上,當包含代碼的類被加載時,將會拋出一個ClassNotFoundException,而不是在其中的代碼被執行時)

相關問題