Tecnologia do Blogger.
RSS

[androidbrasil-dev] AlertDialog para erro que vai aparecer quando eu não conseguir acessar o WS

Gente, eu estou desenvolvendo uma aplicação, e ela vai buscar dados em um WS(WebService)...

Visando o usuario que não vai ter internet, eu queria impedir que ele prossiga com o app. Meu app é simples
o Main tem uma imagem e dois botões, onde ao clicar em qualquer um ele irá no WS pegar os dados para listar.
Como faço para que ao clicar em um botão ele dispare um alert alegando a falta de conexão, e no próprio alert,
um botão "TENTAR" igualmente ao GooglePlay!?

Vou postar um pouco do meu código.

public final String[] get(String url) {


String[] result = new String[2];

HttpGet httpget = new HttpGet(url);

HttpResponse response;


try {

response = HttpClientSingleton.getHttpClientInstace().execute(httpget);

HttpEntity entity = response.getEntity();

if (entity != null) {

result[0] = String.valueOf(response.getStatusLine().getStatusCode());

InputStream instream = entity.getContent();

result[1] = toString(instream);

instream.close();

Log.i("post""Result from post JsonPost : " + result[0] + " : " + result[1]);

}

catch (Exception e) {

Log.e("NGVL""Falha ao acessar Web service", e);

result[0] = "0";

result[1] = "Falha na rede!";

}

return result;

}

Esse é da classe: WebService


public List<Estabelecimento> getListaBar() throws Exception {

String[] resposta = new WebServiceBar().get(URL_WS + "buscarBares");

if (resposta[0].equals("200")) {

Gson gson = new Gson();

ArrayList<Estabelecimento> listaEstabelecimento = new ArrayList<Estabelecimento>();

JsonParser parser = new JsonParser();

    JsonArray array = parser.parse(resposta[1]).getAsJsonArray();

    

    for (int i = 0; i < array.size(); i++) {

     listaEstabelecimento.add(gson.fromJson(array.get(i), Estabelecimento.class));

}

return listaEstabelecimento;

else {

throw new Exception(resposta[1]);

}

}

E esse da classe: EstabelecimentoREST


Quando eu executo o aplicativo com o WS desligado aparece isso:


09-08 06:13:55.944: E/NGVL(2336): Falha ao acessar Web service

09-08 06:13:55.944: E/NGVL(2336): org.apache.http.NoHttpResponseException: The target server failed to respond

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)

09-08 06:13:55.944: E/NGVL(2336):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)

09-08 06:13:55.944: E/NGVL(2336):  at resource.WebServiceBar.get(WebServiceBar.java:24)

09-08 06:13:55.944: E/NGVL(2336):  at resource.EstabelecimentoREST.getListaBar(EstabelecimentoREST.java:28)

09-08 06:13:55.944: E/NGVL(2336):  at app.qualquercanto.BarActivity$PageAdapter.instantiateItem(BarActivity.java:150)

09-08 06:13:55.944: E/NGVL(2336):  at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)

09-08 06:13:55.944: E/NGVL(2336):  at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:692)

09-08 06:13:55.944: E/NGVL(2336):  at android.support.v4.view.ViewPager.populate(ViewPager.java:821)

09-08 06:13:55.944: E/NGVL(2336):  at android.support.v4.view.ViewPager.populate(ViewPager.java:772)

09-08 06:13:55.944: E/NGVL(2336):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.View.measure(View.java:8171)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.View.measure(View.java:8171)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.View.measure(View.java:8171)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.View.measure(View.java:8171)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)

09-08 06:13:55.944: E/NGVL(2336):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.View.measure(View.java:8171)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.ViewRoot.performTraversals(ViewRoot.java:801)

09-08 06:13:55.944: E/NGVL(2336):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)

09-08 06:13:55.944: E/NGVL(2336):  at android.os.Handler.dispatchMessage(Handler.java:99)

09-08 06:13:55.944: E/NGVL(2336):  at android.os.Looper.loop(Looper.java:123)

09-08 06:13:55.944: E/NGVL(2336):  at android.app.ActivityThread.main(ActivityThread.java:4627)

09-08 06:13:55.944: E/NGVL(2336):  at java.lang.reflect.Method.invokeNative(Native Method)

09-08 06:13:55.944: E/NGVL(2336):  at java.lang.reflect.Method.invoke(Method.java:521)

09-08 06:13:55.944: E/NGVL(2336):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

09-08 06:13:55.944: E/NGVL(2336):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

09-08 06:13:55.944: E/NGVL(2336):  at dalvik.system.NativeStart.main(Native Method)


Posso está viajando, mas queria que esse erro não aparecesse, por mais que ele não conectasse com o WS, aparecesse ao menos uma janelinha bonitinha dizendo, que não consegui conectar com o servidor... Alguém ai pode me ajudar?

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário