【发布时间】:2015-07-09 17:58:38
【问题描述】:
我有这样的课
class C
{
MainActivity mainActivity;
boolean isPaused;
public void A()
{
B b = new B()
{
public void run()
{
isDone = true;
}
};
mainActivity.runOnUiThread(b);
while(!b.isDone && !isPaused)
{
try { Thread.sleep(1); }
catch(Exception e)
{
e.printStackTrace();
break;
}
}
}
}
abstract class B implements Runnable
{
public boolean isDone = false;
}
然后在实现GLSurfaceView.Renderer的渲染器中调用
@Override
public void onDrawFrame(GL10 gl)
{
c.A();
}
c 是 instanceof C,mainActivity 在调用自身的 onPause 和 onResume 时调用 GLSurfaceView.onPause 和 onResume。它还设置了 c 的 isPaused。 GLSurfaceView 的 onPause 和 onResume 只是调用它的 super 的 onPause 和 onResume。
然后当 onPause 和 onResume 调用时,我的应用程序被冻结。为了找到问题,我删除了除了我解释的其他代码,但它仍然存在。 我该如何解决?
【问题讨论】: