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

일정시간동안 입력이없으면 동영상을 중단하는 메소드를 만들고싶습니다

0 추천
안녕하세요, 현재 비디오 플레이어를 만들고있습니다.

 

어느정도 멀티의 기능이 들어간터라 사용자의 터치나, 자이로센서도 이용을 하고있습니다.

 

제가 하고싶은건 사용자의 터치나 자이로센서가 약 10분간 동작하지 않을시에 실행하는 동영상을 종료하려고 합니다.

 

마침 자이로센서 (변수 g) 가 있어서 이를 이용하여 메소드를 짜볼려는데

 

아무것도 건들지않으면 Log.d로 뽑았을떄 0.5~0.6사이의 값이 계속 출력이 되더라구요. 이걸

 

float[] 변수에 집어넣어서 조건문을 만들려고했으나 그러면 10분동안의 값을 다 집어넣어야하고 그러면

 

메모리의 부하가 커지므로 10분동안 본래 메소드를 동작하고, 10분이지나면 약 20초가량 자이로센서가

 

0.5~0.6사이가 되는지를 체크해보는 방식으로 바꿨습니다.

 

현재는 CountDownTimer를 써보려하고있는데 이것도 잘 안되더라구요.

 

방법을 아시는분 알려주심 감사하겠습니다
심슨사랑 (690 포인트) 님이 2015년 4월 13일 질문

1개의 답변

+1 추천
저 같으면 이런식으로 구현할것 같습니다.

1. 핸들러를 하나 만들고 run() 에는 비디오 스탑하는 기능을 넣는다.

2. 사용자의 액션을 감지하기 위한 flag변수를 하나 만들고 setter를 만든다

    setter에서는 핸들러에 이전에 있던 메시지를 removeMessage 시키고, postDelayed로 10분 후 동작하도록 메시지를 날린다.

3. 동영상을 플레이 시키면 핸들러에 postDelayed로 10분 후 동작하도록 메시지를 날린다

4. 사용자의 액션을 감지할때마다 2번에서 생성한 setter를 호출한다.

   (자이로값이 0.7 이상일때도 마찬가지로 setter를 호출한다)
Gradler (109,780 포인트) 님이 2015년 4월 14일 답변
감사합니다. 핸들러를 활용하는 방법도 있겠군요 시도해보겠습니다!
다시 읽어보니 flag변수는 만들필요 없이 그냥 핸들러 초기화하고 다시 메시지 날리는 메소드만 있으면 되겠네요;
...