Pracuję nad aplikacją, która kieruje na API 11 (3.0), ale minSDKVersion to 7 (2.1).Refleksja jest niezbędna, jeśli używam "if (android.os.Build.VERSION.SDK_INT> = 11)"
Generuję program PreferenceActivity w sposób programistyczny, a nie XML. W Honeycomb, układy preferencji mają wbudowane miejsce na ikonę, która może przejść obok każdej preferencji. Możesz ustawić to za pomocą prefScreen.setIcon(R.drawable.my_icon);
Więc nie chcę tego robić w interfejsie API 7-10. Czy to wystarczająca ochrona przed awariami?
if (android.os.Build.VERSION.SDK_INT>=11)
prefScreen.setIcon(R.drawable.myIcon);
Bardziej skomplikowane rozwiązanie, o którym wiem, że jest bezpieczne, to użycie refleksji w celu sprawdzenia, czy ta metoda istnieje przed próbą jej użycia.
Przepraszam, jeśli po dwóch latach wrócisz złą postacią i zmienisz zaakceptowaną odpowiedź, ale ta odpowiedź jest teraz właściwa. Lint dostarcza ostrzeżeń, które pomogą ci uniknąć błędu podczas wywoływania niedostępnych metod. – Tenfour04