Android对话框未显示

时间:2016-01-17 17:51:40

标签: android android-alertdialog ringtonemanager

我正在为Android开发一款应用。我有一个叫做铃声的方法,在满足某些条件时调用。我想创建一个lound声音并创建一个对话框来消除声音。 我的代码:

    public void ringtone() {
        AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        manager.setStreamVolume(AudioManager.STREAM_RING, 10, AudioManager.FLAG_SHOW_UI);
            Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            final Ringtone r= RingtoneManager.getRingtone(getApplicationContext(), notification);
        AlertDialog alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
        alertDialog.setTitle("We Detected You Were Asleep");
        alertDialog.setMessage("WAKE UP!");
        alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "I am Awake", new DialogInterface.OnClickListener()
        {
                public void onClick(DialogInterface dialog, int which)
                {
                    dialog.dismiss();
                    r.stop();
                }
            });

        r.play();
        alertDialog.show();
}   

当我运行我的应用时,铃声音量会改变,但铃声不会播放。但是,当我注释掉对话框构建器时,铃声响起。所以我的结论是对话框构建器中存在一些错误,它不允许代码继续。

1 个答案:

答案 0 :(得分:0)

我多次想知道自己:我的对话框显示在当前屏幕外的活动中。

解决方案:您需要使用活动的上下文创建构建器,对话框应显示为。

我已经使用另一个活动(我的共享主活动)的上下文创建了构建器,这是错误的。

现在,在您的情况下,您可能需要创建并显示半透明活动,您可以在其中显示对话框。创建半透明活动只是清单文件中的一些设置。