android - No se puede detener la alarma de timbre de otra actividad.
alarmmanager android-pendingintent (1)
Tu arquitectura está rota.
No utiliza un
BroadcastReceiver
para el procesamiento persistente.
Un
BroadcastReceiver
tiene un ciclo de vida muy corto, lo usa para desencadenar otras cosas.
Ha creado una instancia de
MediaPlayer
en su
BroadcastReceiver
y está intentando controlarla en
onReceive()
.
Esto está mal.
Debe usar un
Service
para administrar y mantener el estado de su
MediaPlayer
.
Vea si puede encontrar algunas guías de CÓMO en Internet para saber cómo crear una aplicación de este tipo.
Soy nuevo en Android, aquí estoy practicando mi primera aplicación (aplicación de alarma).
Tengo un problema en mi aplicación que no puedo detener la alarma una vez que se activa una alarma que no se puede detener el timbre.
En mi aplicación tengo 2 actividades y un AlarmReceiver.
Desde AlarmActivity.java he configurado la alarma, cuando se alcanza la hora específica, Alarmreceiver.java se activa y la alarma comienza a sonar y aparece una pantalla de activación.
Desde el WakeUpScreen.java tengo un botón de parada, y necesito detener la alarma de timbre actual.
No tengo ningún problema en Logcat también.
AlarmActivity.java
public void stopAlarm(Context context) {
Intent intent = new Intent(context,AlarmReceiver.class);
intent.setAction("ALARM_OFF");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, mAlarmId, intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
Tengo esta función AlarmStop () en mi AlarmActivity.java que se activará cuando presione el botón de detener en wakeupscreen.java
Cuando trato de depurar el proceso de detención, el depurador movió todas las líneas en la función stopAlarm (), pero el Intento no funciona, por eso no se llama al archivo AlarmReceiver.java, quiero decir, el depurador movió todas las líneas en el método más popular, pero el AlarmReceiver.java no se llama
Intenté muchas maneras de resolver esto, pero me perdí algo que no pude entender.
¿Alguien puede ayudarme a detener la alarma activada y suena el timbre?