微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android AsyncTask在完成后仍保持运行状态

一个应用程序上工作时,我注意到线程数一直在增长
AsyncTask Threads由于某些原因保持打开状态(我确定他们完成了处理和退出)我不知道为什么我继续创建这种类型的更多线程,并且它们将无限期地运行.
是否有任何方式来验证这些线程是否被终止?
有什么已知的问题与AsyncTasks线程remaing打开?

运行时:

public  class DonothingTask extends AsyncTask<Void,Void,Void> {

        @Override
        protected Void doInBackground(Void... params) {
            // Todo Auto-generated method stub
            return null;
        }

    }

我在debbuger中看到一个新的线程,每次我做新的DonothingTask().execute(null);
作为愚蠢

Thread[<ThreadNumber>AsyncTask#1](running)

我的问题是为什么是这样的?我的应用程序依赖于AsyncTask,我不能有一个新的线程创建,并在每个任务后保持活着.

谢谢,
图腾

解决方法

我也在敲打我的头,刚才碰到了这个答案(这比答案更多的解释):

CommonsWare解释:

AsyncTask manages a thread pool,created with ThreadPoolExecutor. It will have from 5 to 128 threads. If there are more than 5 threads,those extra threads will stick around for at most 10 seconds before being removed. (note: these figures are for the presently-visible open source code and vary by Android release).

Leave the AsyncTask threads alone,please.

来源问题:
AsyncTask threads never die

原文地址:https://www.jb51.cc/android/312938.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐