Czy sprawdzanie SDK_INT jest wystarczające lub czy jest wymagane leniwe ładowanie w celu użycia nowszych interfejsów API systemu Android? Czemu?
Kod taki jak:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD)
ed.apply();
else ed.commit();
wyświetla ostrzeżenie w Froyo:
04-27 03: 40: 35.025: W / dalvikvm (3138): VFY: nie można rozwiązać metody interfejsu 219: Landroid / content / SharedPreferences $ Editor; .apply () V
Rozumiem jednak, że w starszych urządzeniach byłby to błąd RuntimeError, który przerwałby aplikację (patrztutaj itutaj).
Czy więc ten sposób warunkowego wywoływania nowego API (metod) jest bezpieczny w API 8 (Froyo) i powyżej lub istnieją przypadki, w których nadal potrzebne jest leniwe ładowanie?
Jakie zmiany na Dalvik umożliwiły to?
Związane z
Zalecany przez Androida sposób bezpiecznego obsługiwania nowszych apis ma błąd, jeśli klasa implementuje nowszy interfejs. Czemu?Android rozwiązuje problem z hakowaniem SDK_INT; czy to jest ok?Android Dalvik Verification w Eclair