Android решает проблему совместимости с SDK_INT hack; это нормально?
Выполнение следующего (примечание: цель> 3.0)
ActionBar actionBar = getActionBar();
на Android с версией <3.0 (SDK 11) приводит кNoSuchMethodError
.
Есть несколько способов обойти это, включая рефлексию и ленивую загрузку класса. Тем не менее, кажется, что следующее работает на всех устройствах, которые я тестировал (2.3.6, 3.0, 3.1, 4.0):
boolean hasActionBar = android.os.Build.VERSION.SDK_INT >= 11;
if (hasActionBar) {
ActionBar actionBar = getActionBar();
} else {
// create custom actionbar
}
Обратите вниманиеSDK_INT
параметрstatic final
, который, кажется, почему это работает.
Это правильный способ борьбы с совместимостью?