2016-01-17 76 views
1

我正在開發Android版應用。我有一種稱爲鈴聲的方法,在滿足某些條件時調用。我想創建一個低沉的聲音並創建一個對話框來消除聲音。 我的代碼:沒有顯示Android對話框

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(); 
} 

當我運行我的應用程序鈴聲音量的變化,但鈴聲不玩了。但是,當我註釋掉對話框構建器時,鈴聲就響了。所以我的結論是,對話框構建器內部有些問題不允許代碼繼續。

回答

0

我很想知道我自己:我的對話框顯示在一個活動上,當前是在屏幕外。

解決方案:您需要使用活動的上下文創建生成器,對話框應該顯示。

我用另一個活動(我的共享主活動)的上下文創建了構建器,這是錯誤的。

現在在您的情況下,您可能需要創建並顯示一個半透明的活動,您可以在其上顯示對話框。創建半透明活動只是清單文件中的一些設置。