Pregunta

Tengo trabajo en la aplicación que utilizan Internet.

  • Contiene análisis XML de la URL. de
  • Mostrando el indicador de progreso Durante el análisis tiempo.
  • Detener diálogo cuando el análisis se realiza.
  • Definir texto (datos) en ListView.

mi problema es que, cuando el dispositivo está conectado a Internet que mi Apps funciona bien pero cuando El dispositivo no está conectado a Internet "Diálogo de progreso" se está ejecutando para tiempo infinito.

Quiero dejar de diálogo si el dispositivo no está conectado a Internet o wifi. cómo hacer esto?
¿Alguna idea?  Lo siento chicos .... Tengo cambiar de idea que quiero para comprobar la conexión a Internet cuando hago clic en el botón. Lo que he tratado hasta ahora es ..

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.homelayout);
        mclip = (ImageButton) findViewById(R.id.clip);
        mclip.setClickable(true);
        mclip.setFocusable(true);

        mclip.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {
                ConnectivityManager cm = (ConnectivityManager)              getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo netInfo = cm.getActiveNetworkInfo();
                if (netInfo != null && netInfo.isConnectedOrConnecting()) {
               //if it is connected to internet than start Another Activity.
                startActivity(new Intent(ListViewExample.this, ClipOfDay.class));
                } else if (netInfo == null) {
                    AlertDialog alertDialog = new AlertDialog.Builder(ListViewExample.this).create();
                    alertDialog.setTitle("Connection Problem");
                    alertDialog.setMessage("You are not connected to Internet");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            return;
                        }
                    });
                    alertDialog.show();
                }

            }
        });
       }

Pero esto no es working.if dispositivo no está conectado a Internet que quiero mostrar AlertDialog. de lo contrario, se iniciará la actividad. ¿Alguien puede decirme qué hacer?
Gracias.

¿Fue útil?

Solución

Comprobar la conexión a la red
Un código simple para comprobar la conexión

ConnectivityManager cMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
            String status = netInfo.getState().toString();
            if (status.equals("CONNECTED")) {
               //DO you work
            } else {
                Log.e("error", "No connection available ");
            }

Otros consejos

Use estos dos métodos para comprobar la conectividad:

Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI)

a continuación, analizar los resultados devueltos a saber si la conexión está disponible. Si a su disposición, entonces sólo hacer las cosas y poner el cuadro de diálogo.

Como alternativa, puede también aparecer el cuadro de diálogo, y antes de realizar cualquier acción de la red, la verificación de la conectividad con estos métodos, y si la conexión no está disponible, ocultar / cancelar el cuadro de diálogo y mostrar un mensaje de error. otra cosa, ir a por la acción de la red. y sí, siempre tienen un bloque try-catch.

  •  En primer lugar comprobar si está conectado a Internet o wifi, a continuación, ejecute el código
  • Uso try, catch, en caso de que alguna excepción se produce debido a un error de conexión, de diálogo de eliminación en bloque catch.


Esto puede ser una manera de hacer esto ..............
Espero que ayude .......

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top