AsyncTask有必要成为内部类吗



我听说AsyncTask不太有用,因为在AsyncTask完成其功能之前(因为它是一个内部类,并且包含父类的引用(,在更改手机方向的情况下,不能破坏作为AsyncTask父级的活动来释放内存。那么,如果我们不将AsyncTask声明为内部类,并将其定义为一个独立的类呢。。。。那么这个内存泄漏问题会得到解决吗?

如果想要嵌套类,请始终创建一个扩展AsyncTask的静态嵌套类。因为静态嵌套类的实例不保留对其封闭类的引用。您可以使用WeakReference来保留对封闭成员的引用(如果需要(。

那么,如果我们不将AsyncTask声明为内部类把它定义为一个独立的类。。。。这个记忆会吗那么泄漏问题会得到解决吗?

这取决于,如果您保留对某些Activity/Fragment/UI类的强引用,则可能会发生泄漏。使用singleton模式可能有助于处理内存泄漏。

相关内容

  • 没有找到相关文章

最新更新