Достаточно ли проверять SDK_INT или требуется ленивая загрузка для использования более новых API Android? Зачем?
Код такой как:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD)
ed.apply();
else ed.commit();
выдает предупреждение в Froyo:
04-27 03: 40: 35.025: W / dalvikvm (3138): VFY: невозможно разрешить метод интерфейса 219: Landroid / content / SharedPreferences $ Editor; .apply () V
Но я понимаю, что на старых устройствах это будет RuntimeError, которая прервет приложение (см.Вот а такжеВот).
Так является ли этот способ условного вызова новых API (методов) безопасным в API 8 (Froyo) и выше, или в некоторых случаях все еще требуется отложенная загрузка?
Какие изменения на Dalvik сделали это возможным?
связанные с
Android рекомендуемый способ безопасной поддержки более новых API имеет ошибку, если класс реализует более новый интерфейс. Зачем?Android решает проблему совместимости с SDK_INT hack; это нормально?Android Dalvik Проверка в Эклере