Не знаете, как справиться с отсутствием соединения в приложении для Android - PullRequest
0 голосов
/ 18 ноября 2011

Я создаю приложение, которое анализирует RSS-канал в базе данных SQLite, которую затем читают, чтобы заполнить список сообщений.База данных существует, так что даже без подключения пользователь может просматривать сообщения, которые были получены ранее.

Я поместил весь анализ в try-catch;однако, когда это ловит исключение, приложение вылетает.Есть ли способ изящно обработать это исключение, чтобы оно просто пропускало чтение содержимого базы данных?Я рассмотрел использование SocketException и XmlPullParserException, но они либо приносят больше ошибок, либо не влияют на проблему.

1 Ответ

1 голос
/ 18 ноября 2011

Какое исключение выдается?Вы можете добавить общий обработчик Exception в конце вашего оператора try / catch.например,

try {
  //...your code here
} catch (XmlPullParseException xe) {
  //log error
} catch (SocketException se) {
  //log error
} catch (Exception e) {
  //log error
}

Вы также можете проверить правильность соединения, прежде чем совершать вызов, используя следующий статический метод:

public static boolean isOnline(Context context) {
   ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = cm.getActiveNetworkInfo();
   if (netInfo != null && netInfo.isConnectedOrConnecting())
      return true;
   else
      return false;
}

Убедитесь, что вы добавили:

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

на ваш манифест Android, если вы используете этот вызов

...