【发布时间】:2017-01-31 05:34:02
【问题描述】:
在 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(),会不会有内存泄漏?该类没有活动引用,但我意识到匿名类实际上是一个非静态内部类,因此拥有对外部类的引用。那么这本身就是内存泄漏是真的吗?
【问题讨论】:
-
你可以调用服务然后调用异步任务或线程
标签: java android memory-leaks