【发布时间】:2013-10-04 03:43:50
【问题描述】:
所以我发现,随着MAT,我不断创建多个Threads,每个surfaceCreate
我认为我需要这些线程,但是当用户浏览我的应用程序时,这种方法会导致多个 ViewThread 实例,这是内存泄漏。
如何重新组织创建和处理线程的方式,以免发生这种情况,或者如何阻止泄漏的发生?
@Override
public void surfaceCreated(SurfaceHolder holder) {
loading=false;
if (!mThread.isAlive()){
mThread = new ViewThread(this);
mThread.setMenuRunning(true);
mThread.start();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mThread.isAlive()){
mThread.setMenuRunning(false);
}
}
我五次打开并离开游戏的 Career Activity,这就是 MAT 上显示的内容
编辑:我发现依赖surfaceDestroyed 来销毁我的线程是不可靠的。我现在从不同的方法调用适当的线程破坏调用,触发onPause。
【问题讨论】:
标签: android memory-leaks