我試圖使廣播接收器運行的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();
}
謝謝! 編輯:不要說我把它放在一個活動並運行活動,因爲我不想讓它打開我的應用程序,我希望它在打開的應用程序之上。
我固定了第一個答案alone.Thanks無論如何! – elichai2 2013-04-24 10:14:56