@Override
public void run() {
//Create thread that can alter the UI
AlarmPage.this.runOnUiThread(new Runnable() {
public void run() {
cal = Calendar.getInstance();
//See if current time matches set alarm time
if((cal.get(Calendar.HOUR_OF_DAY) == alarmTime.getCurrentHour())
&& (cal.get(Calendar.MINUTE) == alarmTime.getCurrentMinute())){
//If the sound is playing, stop it and rewind
if(sound.isPlaying()){
ShowDialog();
alarmTimer.cancel();
alarmTask.cancel();
alarmTask = new PlaySoundTask();
alarmTimer = new Timer();
alarmTimer.schedule(alarmTask, sound.getDuration(), sound.getDuration());
}
sound.start();
}
}
});
}
public void ShowDialog() {
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("REMINDER!");
alertDialog.setMessage("Turn off alarm by pressing off");
alertDialog.setNegativeButton("Off", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "OFF", Toast.LENGTH_SHORT);
}
});
alertDialog.show();
}
我正在制作一个通知用户的简单闹钟应用程序。我想制作一个警告框,让用户可以选择在闹钟响起时关闭闹钟。我能够制作警报框,但它只出现在不在应用程序之外的应用程序中。我知道应用程序必须在后台运行。如果我需要显示更多代码或更具体,请询问。
答案 0 :(得分:3)
添加一行:
public void ShowDialog() {
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("REMINDER!");
alertDialog.setMessage("Turn off alarm by pressing off");
alertDialog.setNegativeButton("Off", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "OFF", Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();
// line you have to add
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
}
立即检查。
答案 1 :(得分:1)
如果他们没有解决您的问题,请不要接受答案,这会产生误导。
接受的答案是不正确的,因为它永远不会在您的申请之外。
原因:
答案 2 :(得分:0)
这样做会创建一个没有Activity
的{{1}}或与之关联的ContentView
,并在View
中调用alertDialog
方法,同时请记住设置背景使用onCreate
Activity
到Transparent
该活动看起来像是一个对话框或符合您的偏好,您也可以回退到ColourDrawable
,以便将Theme
设置为Activity
并将其视为{ {1}}也使用Dialog