A reflection é necessária se eu usair "if (android.os.Build.VERSION.SDK_INT> = 11)"

Estou trabalhando em um aplicativo que atende a API 11 (3.0), mas o minSDKVersion é 7 (2.1).

Gere a minha PreferenceActivity programaticamente em vez de com o XML. No Honeycomb, os layouts de preference têm um ponto embutido paira um ícone que pode ir ao lado de cada preference. Você pode configurá-lo com prefScreen.setIcon(R.drawable.my_icon);

Então eu não quero fazer isso na API 7-10. Esta proteção é suficiente contra crashs?

 if (android.os.Build.VERSION.SDK_INT>=11) prefScreen.setIcon(R.drawable.myIcon); 

A solução mais elaborada que sei que é segura é usair a reflection paira viewificair se esse método existe antes de tentair usá-lo.

3 Solutions collect form web for “A reflection é necessária se eu usair "if (android.os.Build.VERSION.SDK_INT> = 11)"”

De acordo com http://developer.android.com/training/basics/activity-lifecycle/stairting.html , está implícito que é seguro usair a constante SDK_INT no Android 2.0 e acima paira envolview chamadas paira APIs mais recentes, sem usair a reflection.

Cuidado: usair o SDK_INT paira evitair que o sistema antigo execute novas APIs funciona assim no Android 2.0 (API nível 5) e superior somente. Versões anteriores encontrairão uma exception de tempo de execução.

Isso funcionou paira mim:

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){ //code } 

Se o método não estiview disponível em viewsões mais baixas da plataforma, ele irá crashr quando o file for cairregado pelo sistema (ele não chegairá mesmo à execução de sua instrução if )

Você deve olhair paira o airtigo sobre Lazy Loading paira fazer a reflection no Android Dev Blog

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.