Вопрос

У меня есть работа по приложению, которое использует Интернет.

  • Он содержит XML, разбирающийся от URL. чем
  • Отображение диалогового окна прогресса во время разбора.
  • Остановите диалоговое окно, когда сделано разборка.
  • Установите текст (данные) в ListView.

Моя проблема заключается в том, что, когда устройство подключено к Интернету, чем мои приложения, работает нормально, но когда устройство не подключено к Интернету «Диалог прогресса», работает для бесконечного времени.

Я хочу остановить диалог, если устройство не подключено к Интернету или WiFi. Как это сделать?
Есть идеи? Извините, ребята .... я изменил мой разум, я хочу проверить подключение к Интернету, когда я нажимаю на кнопку. То, что я пробовал до сих пор.

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();
                }

            }
        });
       }

Но это не работает. Если устройство не подключено к Интернету, чем я хочу показать AlertDialog. В противном случае он начнет деятельность. Кто-нибудь может сказать мне, что делать?
Спасибо.

Это было полезно?

Решение

Проверьте сетевое соединение
Простой код для проверки соединения

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 ");
            }

Другие советы

Используйте эти два метода для проверки подключения:

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

Затем результаты возвращаются, чтобы узнать, доступно ли соединение. Если его доступно, то сделайте только вещи и поместите диалоговое окно.

В качестве альтернативы, вы также можете поплывать диалоговое окно вверх, и прежде чем делать какие-либо сетевые действия, проверьте подключение с этими методами, и если подключение недоступно, скрыть / отменить диалоговое окно и отобразить сообщение об ошибке. Иначе, иди на действие сети. И да, всегда есть блок попробовать.

  • Сначала проверьте, подключен ли Интернет или Wi-Fi, затем запустите свой код
  • Используйте TRY, CALL, в случае возникновения некоторого исключения из-за ошибки подключения, удалите диалог в блоке Catch.



Это может быть один способ сделать это ..............
Надеюсь, поможет.......

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top