0

RSSフィードを解析してSQLiteデータベースに変換し、そこから読み取って投稿のリストを作成するアプリを作成しています。データベースはそこにあるので、接続がなくても、ユーザーは以前に取得した投稿を表示できます。

私はすべての構文解析をtry-catchに入れました。ただし、例外をキャッチすると、アプリケーションがクラッシュします。この例外を適切に処理して、データベースの内容の読み取りにスキップする方法はありますか?SocketExceptionとの使用を検討しましXmlPullParserExceptionたが、これらはより多くのエラーをもたらすか、問題に影響を与えません。

4

1 に答える 1

1

どの例外がスローされていますか?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マニフェストに

于 2011-11-17T20:24:56.167 に答える