我正在尝试防止内存泄漏。在Android中,我继承了一些遗留代码,在其中开发人员创建了一个异步任务作为匿名内部类,如下所示:
void startAsyncTask() {
new AsyncTask<Void, Void, Void>() {
@Override protected Void doInBackground(Void... params) {
while(true);//loop to keep thread alive forever.
}
}.execute();
}
在这个示例中,我使用了一个循环,只是为了让子线程永远活着以便演示我的观点。如果我从活动中调用startAsyncTask()
,会导致内存泄漏吗?这个类并没有引用活动,但我意识到匿名类实际上是非静态内部类,因此持有对外部类的引用。那么这本身就是一种内存泄漏吗?