Android应用程序通过按“后退按钮”退出后崩溃
问题描述:
作为我的Android应用程序开发研究的一部分,我通过访问LED闪光灯开发了一个简单的SOS应用程序。每个工作都很好,LED以1/2秒的间隔闪烁。但是当用户按下电话中的后退按钮时,应用程序将退出,1/2秒后将出现“崩溃/强制关闭”消息。我是android开发noob和我的代码最新怎么了?Android应用程序通过按“后退按钮”退出后崩溃
private boolean lOn=true;
Timer mTimer = new Timer();
TimerTask mTimerTask = new TimerTask() {
@Override
public void run() {
if(lOn){
final Parameters p = camera.getParameters();
Log.i("info", "torch is turn Off!");
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
lOn=false;
}
else {
final Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
isLighOn = false;
lOn=true;
}
}
};
答
可能是因为ü没有取消计时器..
调用后试试这个
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(event.getAction() == KeyEvent.ACTION_DOWN)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
mTimer.cancel();
}
}
return super.onKeyDown(keyCode, event);
}
答
呼叫purge();
方法。为什么?当调用取消方法时,定时器停止工作。但它并没有结束。我们必须在应用程序关闭之前手动关闭它,例如在sqlite中调用db.close();
。尝试这个。我认为这只适用于Timer。我不知道TimerTask。
mTimer.cancel();
mTimer.purge();
stacktrace !!!!!! – smk 2013-02-22 03:55:09
为了将来的参考,请通过在命令行中运行'adb logcat'或在Eclipse中使用Debug透视图来发布stacktrace。 – 2013-02-22 04:38:07