3

As part of my android application development study, I developed a simple SOS application by accessing LED Flash light. Every thing working fine and LED blinking at the interval of 1/2 seconds. But When user press the back button in phone, the application get quit and after 1/2 second a "Crash/Force Close" message coming. I am a noob to android development and whats wrong with my code ?

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


        }
    };
4

2 に答える 2

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);
    }
于 2013-02-22T03:58:28.350 に答える
2

を呼び出しpurge();た後にメソッドを呼び出しcancel();ます。なんで?cancel メソッドを呼び出すと、タイマーの動作が停止します。でも閉まりませんでした。db.close();sqliteを呼び出すように、アプリケーションを閉じる前に手動で閉じる必要があります。これを試して。これはタイマー専用だと思います。TimerTask についてはわかりません。

mTimer.cancel();
mTimer.purge();
于 2013-02-22T04:35:52.793 に答える