Android应用程序按“退回按钮”退出后崩溃

时间:2013-02-22 03:53:39

标签: java android android-widget

作为我的Android应用程序开发研究的一部分,我通过访问LED闪光灯开发了一个简单的SOS应用程序。每一件工作都很好,LED以1/2秒的间隔闪烁。但是当用户按下手机中的后退按钮时,应用程序退出并在1/2秒后退出"崩溃/强制关闭"消息来了。我是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 个答案:

答案 0 :(得分:4)

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

试试这个

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

答案 1 :(得分:2)

致电purge();后调用cancel();方法。为什么?调用cancel方法时,计时器停止工作。但它并没有结束。我们必须在应用程序关闭之前手动关闭它,就像在sqlite中调用db.close();一样。试试这个。我认为这只适用于Timer。我不了解TimerTask。

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