2015-08-12 2 views
0

Я использую следующий код, чтобы устройство вибрировало в течение 10 секунд одним нажатием кнопки, однако вибрация может быть остановлена, если пользователь случайно нажмет кнопку возврата оборудования или кнопку параметров. как я могу это преодолеть? спасибо заранееЗадняя кнопка останавливается Вибрация андроида

mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
mVibrator.vibrate(1000 * 10);// sprint time vibration 

я уже пытался перекрывая кнопку назад, но это не поможет

Проверено на Android 5.0

+0

ли вибрация действительно связана с жизненным циклом деятельности? или продолжительности, я думаю, что это будет полная продолжительность в соответствии с очередью – JoxTraex

+0

. Я также обнаружил, что вибрация не останавливается при нажатии кнопки «Назад». Протестировано с версией 22. –

+0

Thats, что я думал @Ganesh, Toxic, вы уверены, что вы не останавливаете его нигде в своем коде? – JoxTraex

ответ

0

Просто Override OnBackPressed и удалить super.onBackPressed это отключит оборудование обратно нажмите ...

@Override 
public void onBackPressed() { 
    //super.onBackPressed(); 
} 
+0

Я уже пробовал отменять кнопку возврата, но он не помогает – MaggotSauceYumYum

+0

, пожалуйста, напишите свой полный код –

0

Похоже, что в документации говорится:

If your process exits, any vibration you started will stop. 

http://developer.android.com/reference/android/os/Vibrator.html

Там, кажется, способ справиться с этим поведение с точки зрения деятельности, если вы сделаете это:

OnCreate() -----

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(10 * 1000); 
finish(); 

Кажется, что вы проигнорировали вышеуказанное условие, если вы закончили работу после вибрации, также кажется, что выполнение этого из службы приводит к тому же самому (отменяет, когда вы покидаете ac сительности)

Престижность:

Vibrator In Android, Stopping when the app exits

Смежные вопросы