Как остановить вибрацию моего приложения при выходе из активности? - PullRequest
0 голосов
/ 27 апреля 2020

В этом упражнении я использую вибрацию, поэтому пользователь должен выбрать шар, который движется в ритме вибрации, но когда я хочу вернуться к экрану назад, то есть к MainActivity, Приложение продолжает вибрацию, не останавливая ее. Это мой код, я уже все перепробовал и не могу это исправить.

Я пытался закрыть его от MainActivity, создав объект типа Вибрация и ничего, только вибрация продолжается. Фактически, если я не закрою приложение полностью, оно может продолжить просмотр на моем устройстве, и вибрация на устройстве будет следовать. Я sh они могли бы помочь мне решить такой конфликт. onDestroy() это просто тестирование, которое я проводил, но оно не работает, я хотел бы получить еще одно предложение для решения этой проблемы.

public class RitmoUno1Activity extends AppCompatActivity {

Button buttonBolaRoja;
Button buttonBolaAmarilla;
Button buttonBolaAzul;
Button buttonSalir;

//Vibrator
Vibrator vibrator;

//Bola modelo uno
ImageView imageBolaModeloUno;
AnimationDrawable bolaModeloUnoRitmo;

//Bola modelo dos
ImageView imageBolaModeloDos;
AnimationDrawable bolaModeloDosRitmo;

//Bola modelo tres
ImageView imageBolaModeloTres;
AnimationDrawable bolaModeloTresRitmo;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ritmo_uno1);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    getSupportActionBar().setTitle("Vibraciones");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    buttonBolaRoja= (Button) findViewById(R.id.btn_bola_roja);
    buttonBolaAmarilla= (Button) findViewById(R.id.btn_bola_amarilla);
    buttonBolaAzul= (Button) findViewById(R.id.btn_bola_azul);
    buttonSalir = (Button) findViewById(R.id.btn_ritmo_salir);

    //Animación de bola roja
    imageBolaModeloUno = (ImageView) findViewById(R.id.img_bola_ritmo_uno);
    imageBolaModeloUno.setImageResource(R.drawable.bola_ritmo_uno);
    bolaModeloUnoRitmo = (AnimationDrawable) imageBolaModeloUno.getDrawable();
    bolaModeloUnoRitmo.start();

    //Animación de bola amarilla
    imageBolaModeloDos = (ImageView) findViewById(R.id.img_bola_ritmo_dos);
    imageBolaModeloDos.setImageResource(R.drawable.bola_ritmo_dos);
    bolaModeloDosRitmo = (AnimationDrawable) imageBolaModeloDos.getDrawable();
    bolaModeloDosRitmo.start();

    //Animación de bola azul
    imageBolaModeloTres = (ImageView) findViewById(R.id.img_bola_ritmo_tres);
    imageBolaModeloTres.setImageResource(R.drawable.bola_ritmo_tres);
    bolaModeloTresRitmo = (AnimationDrawable) imageBolaModeloTres.getDrawable();
    bolaModeloTresRitmo.start();

    vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

    //La unidad de medida de las vibraciones son los milisegundos
    //1000 milisegundos equivalen a 1 segundo
    //Duerme por 200 milisegundos y vibra por 500 milisegundos
    final long [] pattern = {200, 500};
    vibrator.vibrate(pattern, 0);

    buttonBolaRoja.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openSiguientePantalla();
        }
    });

    buttonBolaAmarilla.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    buttonBolaAzul.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

}

public void openSiguientePantalla(){
    Intent intent = new Intent(this, RitmoUno2Activity.class);
    startActivity(intent);
}

//No funciona esto, sólo son pruebas que hice
public void onDestroy() {

    super.onDestroy();

}

}

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Вы можете отменить вибрацию в onDestroy

@Override
public void onDestroy() {
    vibrator.cancel();
}
0 голосов
/ 27 апреля 2020

Это зависит от телефона. То есть, если телефон допускает вибрации или нет, попробуйте также отключить все вибрации на вашем телефоне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...