我有一个应用程序使用带有以下代码的线程:@Override public void run () { Canvas canvas=null;
while (running)
{
try {
canvas=surfaceHolder.lockCanvas(null);
synchronized (surfaceHolder)
{
{
GenerateScan(canvas);
processRequest=false;
}
}
}
finally
{
if (canvas!=null)
{
surfaceHolder.unlockCanvasAndPost(canvas);
}
} //<<<<<<<<<
}
}
应用程序似乎运行良好,但是当我触摸屏幕上的后退箭头时,应用程序似乎正常结束,但不久后显示一条消息“不幸的是,xxxx 已停止”。当我使用连接到模拟器的平板电脑运行它时,处理会在“finally”部分(上面标有 <<<)的末尾停止,并在“调试”选项卡中显示消息:
Thread[<12> nnnViewThread](Suspended(exception NullPointException))