一个简单的显示倒计时的alertdialog。
dialog显示及开始倒计时,倒计时结束则让alertdialog消失,或者是alertdialog消失取消计时。
不依赖activity显示dialog,需要权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
alertdialog的创建:
public void CreateDialog() {
if (mAlertDialog != null) {
return;
}
LayoutInflater inflater = LayoutInflater.from(mContext);
View v = inflater.inflate(R.layout.dialog_timertask, null);
if (v != null) {
mTextView = (TextView) v.findViewById(R.id.dialog_text);
}
Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("倒计时:");
builder.setView(v);
builder.setNegativeButton("cancel", null);
builder.setPositiveButton("sure", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
mAlertDialog = builder.create();
mAlertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//显示
mAlertDialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
mAlertDialog = null;
if (mCountDownTimer!=null) {
mCountDownTimer.cancel();
mCountDownTimer=null;
}
}
});
}
倒计时:
private void CountDown(){
if (mCountDownTimer!=null) {
return;
}
mCountDownTimer = new CountDownTimer(8000,1000) {
@Override
public void onTick(long millisUntilFinished) {
mTextView.setText(millisUntilFinished/1000+"s");
}
@Override
public void onFinish() {
if (mAlertDialog!=null) {
mAlertDialog.dismiss();
}
}
};
mCountDownTimer.start();
}