gpt4 book ai didi

Android AsyncTask完成后保持运行状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:34 26 4
gpt4 key购买 nike

在开发应用程序时,我注意到线程数一直在增长。 AsyncTask 线程由于某种原因保持打开状态(我确定它们已完成处理并退出)。我不知道为什么我一直在创建更多这种类型的线程,而且它们一直在无限期地运行。

有什么方法可以验证这些线程是否在完成时终止?AsyncTask 线程保持打开状态是否存在任何已知问题?

运行时:

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

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

}

我每次都在调试器中看到一个新线程 new DoNothingTask().execute(null);如下:

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

我的问题是这是为什么?我的应用程序非常依赖 AsyncTask,我无法创建新线程并在每个任务后保持 Activity 状态。

最佳答案

我也在苦苦思索这个问题,刚刚看到这个答案(好吧,与其说是答案,不如说是解释):

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

关于Android AsyncTask完成后保持运行状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com