Uma grande ajuda que a API do Android nos dá é a possibilidade de checar se tem internet disponível para sua aplicação no aparelho do usuário.
Eu fiz um método bem simples que verifica o estado da conexão.
/** * <h1>public {@link Boolean boolean} isOnline()</h1> * Checa se tem conexão ou não com a internet. * @param contexto em que será exibido o texto * @return <li> retorna true se tem conexão ou falso se não. * */ public static boolean isOnline(Context contexto){ ConnectivityManager cm = (ConnectivityManager) contexto.getSystemService(Context.CONNECTIVITY_SERVICE);//Pego a conectividade do contexto o qual o metodo foi chamado NetworkInfo netInfo = cm.getActiveNetworkInfo();//Crio o objeto netInfo que recebe as informacoes da NEtwork System.out.println("NETWORK INFO: "+netInfo.getSubtypeName()); if ( (netInfo != null) && (netInfo.isConnectedOrConnecting()) && (netInfo.isAvailable()) ) //Se o objeto for nulo ou nao tem conectividade retorna false return true; return false; }
Com isso, você pode usar seu método antes de executar as chamadas em web services e evitar ANRs ou exceptions.
para esse código funcionar corretamente, nao esqueça de declarar no seu AndroidManifest.xml a propriedade que permite voce ter acesso a informação de estado da rede.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Que parametros passo na chamada do metedo dentro da activity?
Eu passo o contexto o qual o metodo foi chamado.
Se ele foi chamado de uma activity, eu passo “this” como parametro.
Aqui no meu projeto, eu criei uma classe que tem metodos estaticos o qual pode ser usado no meu projeto todo.
dae eu chamo ele e pego o contexto o qual ele esta inserido.
if(ServiceProvider.isOnline(this)){
espero ter ajudado.
abs
Muito util, esta de parabens.
Show de post, ajudou bastante amigo… parabéns!!!