を閉じますか?私はそれを閉じるしようとすると:は、私がされたInputSourceに渡されるInputStreamを持っているのInputStream
ins.Close();
「xmlSource」は、それを終了する前にストリームが閉じますので、私はjava.lang.NullPointerExceptionがを取得します。また、オブジェクト "xmlTableRowLoader"はThreadを拡張します。
を閉じますか?私はそれを閉じるしようとすると:は、私がされたInputSourceに渡されるInputStreamを持っているのInputStream
ins.Close();
「xmlSource」は、それを終了する前にストリームが閉じますので、私はjava.lang.NullPointerExceptionがを取得します。また、オブジェクト "xmlTableRowLoader"はThreadを拡張します。
どのようにAcmTableRowLoaderがそれを使用しているかによって異なります。あなたが言ったことを疑うコンストラクタでのみそれを使用している場合、上記の方法でそれを閉じることは有効かもしれません。しかし、AcmTableRowLoaderがコンストラクタ以外の場所でそれを使用しているように見えるので、AcmTableRowLoaderを作成してストリーム自体を閉じることをお勧めします。
または、要するに、xmlSourceを閉じた後に閉じます。より多くの文脈がなくてもどこで/どのように正確に伝えるのは難しい。あなたはちょうど銃を飛ばしたように見えます。
parse()がストリームを閉じることができるときに、ストリームを読み込むスレッドでストリームを閉じるようにしてください。 別のスレッドでストリームを閉じたい場合は、AsyncTaskを見ることができます。
議論から**閉鎖**が** xmlStream **にNPEを引き起こしているようです。 ** ins **はnullではありません。 –
ああ私の悪い、私は私の答えを編集しました。 – Michele
コード全体をtry{ ... }catch
ブロックに入れて、finally
ブロックを追加して入力ストリームを閉じることをお勧めします。
「AcmTableRowLoader」とは何ですか?あなたはjavadocを持っていますか?それはInputSourceパラメータの処理について何を言いますか? –