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; 
      } 


     } 
    }; 
+2

stacktrace !!!!!! – smk 2013-02-22 03:55:09

+1

为了将来的参考,请通过在命令行中运行'adb logcat'或在Eclipse中使用Debug透视图来发布stacktrace。 – 2013-02-22 04:38:07

可能是因为ü没有取消计时器..

调用​​后试试这个

@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); 
    } 
+0

谢谢..解决:) :)非常感谢 – ramesh 2013-02-22 04:22:10

+2

@ramesh:你欢迎:) – Deepzz 2013-02-22 04:23:17

呼叫purge();方法。为什么?当调用取消方法时,定时器停止工作。但它并没有结束。我们必须在应用程序关闭之前手动关闭它,例如在sqlite中调用db.close();。尝试这个。我认为这只适用于Timer。我不知道TimerTask。

mTimer.cancel(); 
mTimer.purge();