避免对活动进行长期参考

时间:2013-09-11 13:47:45

标签: android android-memory

我有Activity。此Activity附加ListView BaseAdapter。 在onDestroy中,适配器存储在一个类中,在onCreate中,它会重新连接到新的Activity。 适配器从Internet加载内容并为Views创建ListView。 为了能够从适配器启动AsyncTask(以加载我的数据),它需要LoaderManager。我使用Activity的{​​{1}}将其从getSupportLoaderManager()传递给适配器。

  1. 以下是否正确:当适配器被保留并重新连接到Activity时,它将始终保留对我第一次传递给它的旧的Activities的引用,可能/会导致内存泄漏?

  2. 如何防止这种情况?我想过每次将适配器Activity重新附加到新LoaderManager Activity Activity的新getSupportLoaderManager()时? 这是安全/普通的吗?

  3. 我怎样才能找到对“旧”Activities的可能危险的引用?

1 个答案:

答案 0 :(得分:1)

摆脱静态数据成员。使用保留的片段或onRetainNonConfigurationInstance()来保持适配器跨配置更改。

  

我如何能够找到对“旧”活动的可能危险的引用?

如果“危险”是指“泄露”,use MAT