In your Receiver class, just code to get the dialog to display instead of Notification.
Class that displays Dialog:
public class AlarmDialogPopUp extends Activity
{
private int m_alarmId;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Get the alarm ID from the intent extra data
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
m_alarmId = extras.getInt("AlarmID", -1);
} else {
m_alarmId = -1;
}
// Show the popup dialog
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id)
{
super.onCreateDialog(id);
// Build the dialog
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("ALARM REMINDER");
alert.setMessage("Its time for the alarm ");
alert.setCancelable(false);
alert.setPositiveButton("Dismiss", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
AlarmDialogPopUp.this.finish();
}
});
// Create and return the dialog
AlertDialog dlg = alert.create();
return dlg;
}
}
In your onReceive
to show dialog :
public void onReceive(Context context, Intent intent)
{
// Launch the alarm popup dialog
Intent alarmIntent = new Intent("android.intent.action.MAIN");
alarmIntent.setClass(context, AlarmDialogPopUp .class);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Pass on the alarm ID as extra data
alarmIntent.putExtra("AlarmID", intent.getIntExtra("AlarmID", -1));
// Start the popup activity
context.startActivity(alarmIntent);
}
EDIT based on the comment:
To play sound, you need to make use of MediaPlayer like below.
Add this line in the onCreate()
of AlarmDialogPopUp
activity class to play the sound.
MediaPlayer mediaPlayer; //global variable.
mediaPlayer = MediaPlayer.create(this,R.raw.alarmsound);
Add the below lines in the onClick()
of the dialog to stop the sound:
mediaPlayer.stop();
mediaPlayer.release();
Hope this helps.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…