1

https://github.com/nostra13/Android-Universal-Image-Loaderで nostra13 の Universal Image Loader を使用しています。私の問題は次のとおりです。

私はこれらのクラスを持っています

PhotoActivity extends FragmentActivity

ImageFragment extends Fragment

を使用して初期化し、このフラグメントでimageLoaderは、を使用していくつかの画像も表示します。ImageFragmentimageLoader = ImageLoader.getInstance();imageLoader.displayImage(...)

PhotoActivityが停止する(onStop()が呼び出される)と、私も停止し、メソッドImageFragmentを呼び出すため、画像の読み込みが停止するはずです。ただし、これは当てはまらず、後で呼び出されるため NullPointerException が発生し、フラグメントがそのアクティビティから切り離されたため、このメソッドはこの時点で呼び出されます。imageLoader.stop()onStop()onLoadingComplete()ImageLoadingListener()getActivity()null

imageLoader.stop()すべての読み込みプロセスを停止する必要がありますか?

4

1 に答える 1

0

ImageLoader はExecutorService、タスクのプールとして使用します。ImageLoader.stop() は、次の Java ドキュメントを持つ ExecutorService.shutdown() を実行するだけです。

以前に送信されたタスクが実行される正常なシャットダウンを開始しますが、新しいタスクは受け入れられません。すでにシャットダウンされている場合、呼び出しによる追加の効果はありません。

このメソッドは、以前に送信されたタスクの実行が完了するまで待機しません。

アクティブなタスクが の直後にシャットダウンされるという保証はありませんshutdown()。その場合はof を使用する方が良いオプションかもしれませshutdownNow()んが (考えてみます)、それでもすぐにタスクをシャットダウンできるという保証はありません。

したがって、この時点でとにかくチェックする必要がありますgetActivity()。しかし、ImageLoader が停止した後にコールバックが発生しないようにすることを考えます。多分次のバージョンで。

于 2012-09-25T12:42:55.380 に答える