2013-04-23 20 views
0
彈出一個AlertDialog

我試圖使廣播接收器運行的AlertDialog,它只是跳過調用對話框方法(和投擲到捕獲異常): 我的廣播接收器:從AlarmManger

public void onReceive(Context context, Intent intent) { 
     this.con = context; 
     try 
     {    
      PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
      PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG"); 
      //Acquire the lock 
      wl.acquire(); 

      intent.getExtras(); 
      new StringBuilder(); 
      wl.release(); 
      String[] a ={"a","b"}; 
      create(context, a); //The Dialog Call 
      setOnetimeTimer(con); 
      Toast.makeText(context, "Hurray!", Toast.LENGTH_SHORT).show(); 

     } 
     catch (Exception e) 
     { 
      Toast.makeText(context, "Error,broadcastReciver"+e.getMessage(), Toast.LENGTH_LONG).show(); 
      e.printStackTrace(); 
     } 
    } 

而且這裏是create()方法:(即創建對話框) 公共靜態無效創建(上下文的背景下,的String []說明){

 AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     builder.setCancelable(true); 
     builder.setTitle("Random String"); 
     builder.setMessage(descriptions[rn.nextInt(2)]); 
     //builder.setMessage("test"); 
     builder.setInverseBackgroundForced(false); 
     builder.setPositiveButton("Close", 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, 
          int which) { 
         dialog.dismiss(); 
        } 
       }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 

謝謝! 編輯:不要說我把它放在一個活動並運行活動,因爲我不想讓它打開我的應用程序,我希望它在打開的應用程序之上。

回答

0

(之前編輯)1.I稱爲類Dialog所以當意圖試圖打電話給Dialog.class,它被稱爲在Dialog系統類。 2.I used: How do I create a transparent Activity on Android? 使活動透明,我沒有使用ContentView所以只有在已打開的活動上方彈出對話框。

0

沒有設置日曆的更長時間字段(例如年),似乎您在當前時間之前設置了鬧鐘。嘗試是這樣的:

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.add(Calendar.MINUTES, 23*60 + 58); 
+0

我固定了第一個答案alone.Thanks無論如何! – elichai2 2013-04-24 10:14:56