我在方法中创建了asynctask。但它显示了一个警告。
此AsyncTask类应该是静态的,否则可能会发生泄漏(匿名) android.os.AsyncTask)less ..静态字段会泄漏上下文。 非静态内部类具有对其外部的隐式引用 类。如果那个外部类是例如片段或活动,那么 这个引用意味着长时间运行的处理程序/加载器/任务将 持有对阻止它获取的活动的引用 垃圾收集。同样,对活动的直接字段引用 来自这些运行时间较长的实例的碎片可能会导致泄漏。 ViewModel类永远不应该指向Views或非应用程序 上下文。
如何避免此警告?
答案 0 :(得分:0)
此警告试图说明的是,您可以在手机内存中泄露您的活动/片段。
如果您创建使用活动上下文的AsyncTask,或者AsyncTask是活动/片段的子类,则将活动/片段保留在内存中。当您旋转或更改periode中的活动时,AsyncTask正在运行。将旧活动实例保留在内存中并泄漏活动/片段。