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

1

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

Теги:

3 ответа

0
Лучший ответ

Проверьте мой класс HTTPclass.java, как я это сделал, у меня есть метод connect (url), который берет строку url и связывает ее, если соединение получено, оно отвечает и дает responseCode = 200 или HTTP.OK, и если соединение не подключено. Я обрабатываю блок catch и устанавливаю responseCode = -1 что означает, что он не подключен.

Таким образом, вы можете сделать что-то подобное. Когда responseecode является -1, вы можете показать сообщение "Интернет не подключен".

public class HTTPClass
{
    private static int responseCode = -1;
    private static HttpURLConnection httpconn = null;        
    private static URLConnection conn = null;
    private static URL urlobj;

    public static int connect(String url) throws IOException
    {
        try
        {
            urlobj = new URL(url);
            conn = urlobj.openConnection();
            httpconn= (HttpURLConnection)conn;
            httpconn.setConnectTimeout(5000);
            httpconn.setDoInput(true);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        try
        {
            responseCode = httpconn.getResponseCode();
        }
        catch(Exception e)
        {
            responseCode = -1;
            e.printStackTrace();
        }
        return responseCode;
    }
}
5

Требуемое разрешение:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

Проверьте подключение к Интернету для каждого запроса

public boolean isOnline() {
        NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }

Использовать выше метод как

if(isOnline()) {
   //Write code of request
} else {
   showDialog("Internet connection error", "Connection is not available.")
}

Показать диалоговый метод

private void showDialog(String title, String text) {
        // Access denied. Show dialogue to user
        AlertDialog.Builder alertbox = new AlertDialog.Builder(YOUR_ACTIVITY.this);
        alertbox.setTitle(title);
        alertbox.setIcon(android.R.drawable.ic_dialog_info);
        alertbox.setMessage(text);
        alertbox.setNeutralButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                //finish(); //DO nothing
            }
        });
        alertbox.show();
    }

Отредактировано: Замените YOUR_ACTIVITY.this с именем деятельности, в котором вы используете этот код.

  • 0
    эй, спасибо, человек, я попробовал это, но это не показывает окно предупреждения, когда интернет-соединение не доступно.
  • 0
    @Rocker Я только что обновил свой ответ, проверь его.
Показать ещё 4 комментария
1

Вы можете показать AlertDialog, чтобы показать пользователю, что нет подключения к Интернету. Если ваше приложение не может работать без подключения, после нажатия кнопки отмены в AlertDialog вы можете завершить свою деятельность и закрыть приложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню