마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

타이머 작동과 센서활용

0 추천

현재, 버튼을 누르면 센서 작동이 시작되고, 타이머를 적용해서 일정한 간격으로 센서값을 얻어내는 코드를 구현중입니다.

그런데, 주기적으로 로그값이 찍히지 않아서 그냥 텍스트뷰에 띄우는 작업을 해보았는데, 그것도 되지 않습니다. 타이머 사용을 할 때, 잘못된 점이 있어 그런걸까요?
별다른 오류는 발견되지 않고, 아무런 출력값이 없습니다.

도움 주시면 감사하겠습니다.

button.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view) {
                accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
                accelerometerLis = new AccelerometerListener();
                //
                CountDownTimer CDT = new CountDownTimer(10 * 1000, 1000) {
                    public void onTick(long millisUntilFinished) {
                        sensorManager.registerListener(accelerometerLis, accelerometer, SensorManager.SENSOR_DELAY_UI);
                    }
                    public void onFinish() {
                    }
                };

                CDT.start();

                CDT.cancel();
                //
            }
        });
    }

    private class AccelerometerListener implements SensorEventListener {

        @Override
        public void onSensorChanged(SensorEvent event) {

            double accX = event.values[0];
            double accY = event.values[1];
            double accZ = event.values[2];

            double angleXZ = Math.atan2(accX,  accZ) * 180/Math.PI;
            double angleYZ = Math.atan2(accY,  accZ) * 180/Math.PI;

            String message = "각도" + angleXZ;
            textView.setText(message);
Sprite_ZERO (470 포인트) 님이 2022년 3월 24일 질문

1개의 답변

0 추천
 
채택된 답변
CDT.start();

CDT.cancel();

위처럼 타이머를 시작하자 마자 취소하시면 아무 동작도 하지 않을 것 같은데요. cancel을 다른 적절한 곳으로 옮기세요.

 

 

spark (227,830 포인트) 님이 2022년 3월 24일 답변
spark님이 2022년 3월 24일 수정
정말 간단한 실책이었네요...
알려주셔서 감사합니다!
...