yyd*_*ydl 5 android garbage-collection android-asynctask
目前,我正在做这样的事情在的AsyncTask的onPostExecute方法,其中NewTask
是不是当前任务这是执行:
private class OlderTask extends AsyncTask<String, Void, Integer> {
//other functions (not important)
@Override
protected void onPostExecute(Integer result) {
new NewTask().execute(null, null);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是不是一个坏主意.这样做会导致GC为OlderTask等待NewTask吗?使用这种方法还有其他可能的问题吗?
如果这是一个问题,我该如何纠正呢?
除非它NewTask
是内部非静态类,否则OlderTask
不会阻止 GC 收集OlderTask
,除非您以其他方式存储对它的引用。
但即使 GC 会等到NewTask
完成,也应该不是什么大问题,除非您在 中保存大量数据OlderTask
或创建大量副本OlderTask
。
因此,如果您的设计需要这样做,那就没问题。但没有连锁任务肯定更干净。
归档时间: |
|
查看次数: |
2064 次 |
最近记录: |