2

私は持っていActivityます。これActivityには がListView付属BaseAdapterしています。ではonDestroy、アダプタはクラスに格納され、onCreateでは新しい に再接続されActivityます。アダプターはインターネットからデータを読み込みViewsListView. AsyncTaskアダプターから (データをロードするために) を開始できるようにするには、 LoaderManager. Activityの を使用して、からアダプタに渡しgetSupportLoaderManager()ますActivity

  1. 次は正しいですか: アダプターが保持され、に再接続されているため、最初に渡しActivitiesた古いものへの参照が常に保持され、メモリ リークが発生する可能性がありますか?Activity

  2. どうすればこれを防ぐことができますか? LoaderManagerアダプターを新しいものに付け直すたびに、新しいものにActivity交換することを考えましたActivitygetSupportLoaderManager()これは安全/一般的ですか?

  3. 一般的に、 'old' への危険な参照を見つけるにはどうすればよいActivitiesですか?

4

1 に答える 1

1

静的データ メンバーを取り除きます。保持フラグメントまたは を使用して、onRetainNonConfigurationInstance()構成の変更後もアダプタを保持します。

一般的に、「古い」アクティビティへの危険な参照を見つけるにはどうすればよいですか?

「危険」が「漏洩」を意味する場合は、MAT を使用してください。

于 2013-09-11T13:56:28.480 に答える