선생님, 알람을 멈추고 다른 클래스에서 경고 대화를 시작하려면 어떻게해야합니까? 이 코드는 항상 닫습니다. 내가 시계를 멈추기 위해 프롬프트 부분을 제거하면 알람이 울리지 않고 경고 대화 상자가 한 번만 표시됩니다. 다른 메시지를 받으면 경고 대화 상자를 다시 트리거하지 않습니다. 도와주세요. 나는 모든하지만에서 내가 이해를 이해하지 못하는알림을 울리고 멈추고 알림을 시작하는 방법
for (SmsMessage msg : messages) {
if (msg.getMessageBody().contains("alert")) {
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
if(alert == null){
// alert is null, using backup
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
if(alert == null){
// alert backup is null, using 2nd backup
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}
}
Ringtone r = RingtoneManager.getRingtone(context.getApplicationContext(), alert);
AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
int maxVolumeAlarm = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolumeAlarm,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
r.play();
//prompt
alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Alarm Received");
alertDialogBuilder
.setMessage("Stop alarm")
.setCancelable(false)
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
r.stop();
Toast.makeText(getApplicationContext(), "alarm stopped", Toast.LENGTH_LONG).show();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
Toast.makeText(context.getApplicationContext(), "alarm started", Toast.LENGTH_LONG).show();
//open alertdialog in other activity
Intent openInterface = new Intent("proj.receiver.RECEIVERINTERFACE");
openInterface.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openInterface);
}//end if
}//end for
내 코드가 실행 중이 지 않습니다. r.stop()을 그대로두면 강제로 닫힙니다. –
'r.stop()'다음에 'dialog.cancel()'및/또는 'dialog.dismiss()'를 시도 했습니까? – Jordi