2017-03-14 14 views
0

진동기 개체에 이상한 문제가 있습니다.Android : 진동기가 진동을 멈추지 않습니다

화면이 켜지면 (심지어 내 앱에서라도) 예상대로 작동합니다. 그러나 전원 버튼을 한 번 눌러 화면을 끄면 진동기가 2 초 후에 진동을 멈추지 않습니다. 그것은 무한정 계속 진동합니다.

이 동작은 Motorola Moto E3에서만 발생합니다. 내가 어떻게 우회 할 수 있는지 알고 있니?

+2

예를 들어 'AsyncTask'를 통해 별도의 스레드에서 호출 해 보았습니까? –

+0

백그라운드에서 앱과 함께 진동해야하나요? 그렇지 않다면 onPause 및 onDestroy에서 Vibrator 클래스의 cancel() 메소드를 시도 할 수 있습니다. –

+0

@ ale.m 예. 알림으로 사용하고 있으므로 백그라운드에서 앱과 진동해야합니다. 별도의 스레드에서 호출 해 봅니다. 기다리고 보자. – Denis

답변

0

아무 것도 성공하지 않고 모든 것을 시도했습니다 (지연된 서비스, 새 스레드 등). 그러나 마침내 패턴을 사용하여 모토로라 Moto E3에서이 버그를 우회하는 방법을 찾았습니다.

Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 
vibrator.vibrate(new long[]{0, 2 * DateUtils.SECOND_IN_MILLIS}, -1); 

이 정보가 도움이되기를 바랍니다.

1

내 경험에 따르면 Vibrator은 다른 기기에서 다르게 작동합니다. 운동의 onStop()에서 진동이 가장 좋은 생각은 cancel()입니다.

1

Roy가 제안한 것이 작동하지 않는다면. AlarmManager를 만들어 2 초 후에 실행하도록 설정하고 그 안에 vibrator.cancel()을 호출하십시오.