我有一個示例代碼,顯示彈出消息(alertDialog.butiler),每20秒保存在調度程序中。問題是新彈出窗口每20秒就會覆蓋舊彈出窗口,所以我如何才能克服這個問題,我需要獲得一個彈出窗口,如果彈出窗口處於活動狀態,不應該生成啓動窗口。所以,請幫助我。如何通過編程方式刪除android中的alertDialog.builder
這是我的示例代碼:
import android.support.v7.app.AlertDialog;
import android.content.DialogInterface;
ScheduledFuture<?> s = null;
private ScheduledExecutorService scheduler = null;
scheduler=Executors.newScheduledThreadPool(1);
s=scheduler.scheduleAtFixedRate(new
Runnable() {
@Override
public void run() {
System.out.println("Called the scheduler");
runOnUiThread(new Runnable() {
@Override
public void run() {
if (showAlertDialog) {
if (!isFinishing()) {
System.out.println("Called the scheduler on ui thread");
AlertDialog.Builder builder = new AlertDialog.Builder(WaitForRiderAllocationActivity.this);
builder.setCancelable(false);
builder.setTitle("TRIP UPDATES");
builder.setMessage("All are our riders are busy, do you want to still continue?");
builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
finish();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(WaitForRiderAllocationActivity.this, "some text", Toast.LENGTH_LONG).show();
Intent intent = new Intent(WaitForRiderAllocationActivity.this, GiveRideTakeRideActivity.class);
startActivity(intent);
finish();
}
});
builder.show();
}
}
}
);
}
},
0, 20, TimeUnit.SECONDS);
在顯示新對話框之前關閉對話框。 –
builder.dismiss()不支持 –
在調用構建器之前創建構建器對象 –