Dialog中显示倒计时,到时自己主动关闭
这里直接用系统Dialog中加入了倒计时的显示,假设用自己定义Dialog会更美观;
private TextView mOffTextView; private Handler mOffHandler; private Timer mOffTime; private Dialog mDialog; //////创建对话框 void initDialog(){ mOffTextView = new TextView(this); mDialog = new AlertDialog.Builder(this) .setTitle("提示") .setCancelable(false) .setView(mOffTextView) //// .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { mOffTime.cancel(); off();////关闭后的一些操作 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); mOffTime.cancel(); } }) .create(); mDialog.show(); mDialog.setCanceledOnTouchOutside(false); mOffHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what > 0) { ////动态显示倒计时 mOffTextView.setText(" 即将关闭:"+msg.what); } else { ////倒计时结束自己主动关闭 if(mDialog!=null){ mDialog.dismiss(); } off();////关闭后的操作 mOffTime.cancel(); } super.handleMessage(msg); } }; //////倒计时 mOffTime = new Timer(true); TimerTask tt = new TimerTask() { int countTime = 10; public void run() { if (countTime > 0) { countTime--; } Message msg = new Message(); msg.what = countTime; mOffHandler.sendMessage(msg); } }; mOffTime.schedule(tt, 1000, 1000); }
效果图