Запуск следующего (примечание: целевой> 3,0)Android-совместимость с SDK_INT-хаком; это нормально?
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
, который, как представляется, почему это работает.
Является ли это действительным способом решения проблемы совместимости?
в соответствии с google: http://developer.android.com/resources/dashboard/platform-versions.html большинство пользователей не превышает 2.3. Поэтому вы можете пересмотреть свою стратегию. Внедрите решение, которое работает на устройствах <3.0. –
@Paul, это действительно ради любопытства. –