Android匿名asyncTask-是否会导致内存泄漏

j2emanue

在Android中,我试图防止内存泄漏。我继承了一些旧代码,开发人员在其中创建了asyncTask作为匿名内部类,如下所示:

 void startAsyncTask() {
    new AsyncTask<Void, Void, Void>() {
        @Override protected Void doInBackground(Void... params) {
            while(true);//loop  to keep thread alive forever.
        }
    }.execute();
}

所以我在这个例子中使用循环只是为了让子线程永远活着,这样我就可以演示我的观点。所以从活动中如果我打电话startAsyncTask()会出现内存泄漏吗?该类没有活动引用,但我意识到匿名类实际上是一个非静态内部类,因此拥有对外部类的引用。难道这本身就是内存泄漏?

加布·塞尚

它将保留对外部类(活动)的引用,直到任务完成。因此,这将使活动的举行时间超过绝对必要的时间。但是,如果任务在合理的时间内完成,那应该没问题-完成任务后,任务将结束并变为可垃圾回收,这将使活动垃圾可回收。更大的问题是长期线程,这些线程可能会持续到活动结束之后,或者如果编写得不好,则根本不会终止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果重置了回调,为什么静态Drawable会导致Android泄漏内存?

这个Java示例是否会导致内存泄漏?

引用数组索引是否会导致内存泄漏?

由于android.widget.BubblePopupHelper而导致的内存泄漏

该程序会导致内存泄漏吗?

递归调用Ajax会导致内存泄漏?

Android幻灯片显示导致内存泄漏

分配函数作用域成员是否会导致内存泄漏?

goto LABEL会导致内存泄漏吗?

Redux存储会导致内存泄漏吗?

Android-mainThread处理程序会导致内存泄漏吗?

BeginInvokeOnMainThread方法是否会循环并导致内存泄漏?

从WeakReference的get方法返回的强引用是否会导致AsyncTask onProgressUpdate中的内存泄漏?

android Application类中的ProgressDialog导致内存泄漏

这段代码会导致Android中的内存泄漏吗

调用创建对象的函数是否会导致内存泄漏?

双向WeakMap会导致内存泄漏吗?

不带挂断调用的ManuallyDrop是否会导致内存泄漏?

自定义ClassLoader是否会导致内存泄漏?

NavigableMap的subMap会导致内存泄漏吗?

Task.Delay()循环是否会导致内存泄漏?

Android runOnUiThread导致内存泄漏

Android:由于成员变量导致内存泄漏?

清空Array = []会导致内存泄漏吗?

调用解构函数时,这是否会导致内存泄漏?

Android 内存泄漏 - 匿名类

这段代码是否会导致 JavaScript 内存泄漏

静态变量会导致android中的内存泄漏吗?

这种对共享指针向量的推回是否会导致内存泄漏?