我听说AsyncTask不太有用,因为在AsyncTask完成其功能之前(因为它是一个内部类,并且包含父类的引用(,在更改手机方向的情况下,不能破坏作为AsyncTask父级的活动来释放内存。那么,如果我们不将AsyncTask声明为内部类,并将其定义为一个独立的类呢。。。。那么这个内存泄漏问题会得到解决吗?
如果想要嵌套类,请始终创建一个扩展AsyncTask的静态嵌套类。因为静态嵌套类的实例不保留对其封闭类的引用。您可以使用WeakReference来保留对封闭成员的引用(如果需要(。
那么,如果我们不将AsyncTask声明为内部类把它定义为一个独立的类。。。。这个记忆会吗那么泄漏问题会得到解决吗?
这取决于,如果您保留对某些Activity/Fragment/UI类的强引用,则可能会发生泄漏。使用singleton模式可能有助于处理内存泄漏。