gpt4 book ai didi

java - 离开 Activity 时如何停止应用程序的振动?

转载 作者:行者123 更新时间:2023-12-01 17:06:10 30 4
gpt4 key购买 nike

在此 Activity 中我使用振动,因此由用户选择按照振动节奏移动的球,但是当我想向后返回屏幕时,即返回到MainActivity,应用程序继续振动而不停止。这是我的代码,我已经尝试了所有方法,但无法修复它。

我尝试通过创建一个 Vibration 类型的对象来从 MainActivity 关闭它,但什么也没有,只是振动继续。事实上,如果我没有完全关闭应用程序,它可能会继续在我的设备上浏览,并且设备上的振动也会随之而来。我希望他们能帮助我解决这样的冲突。 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();

}

}

最佳答案

可以在onDestroy中取消震动

@Override
public void onDestroy() {
vibrator.cancel();
}

关于java - 离开 Activity 时如何停止应用程序的振动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61463920/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com