设置超时的progressdialog

来源:互联网 发布:区块链共识算法 编辑:程序博客网 时间:2024/06/07 00:47

//设置超时的progressdialog
public class ProgressDialog extends android.app.ProgressDialog {

private long mTimeOut = 0;// 默认timeOut为0即无限大private OnTimeOutListener mTimeOutListener = null;// timeOut后的处理器private Timer mTimer = null;// 定时器private Handler mHandler = new Handler(){    @Override    public void handleMessage(Message msg) {        if(mTimeOutListener != null){            mTimeOutListener.onTimeOut(ProgressDialog.this);            dismiss();        }    }};public ProgressDialog(Context context) {    super(context);}public void setTimeOut(long t, OnTimeOutListener timeOutListener) {    mTimeOut = t;    if (timeOutListener != null) {        this.mTimeOutListener = timeOutListener;    }}@Overrideprotected void onStop() {    super.onStop();    if (mTimer != null) {        mTimer.cancel();        mTimer = null;    }}@Overridepublic void onStart() {    super.onStart();    if (mTimeOut != 0) {        mTimer = new Timer();        TimerTask timerTast = new TimerTask() {            @Override            public void run() {            //    dismiss();                    Message msg = mHandler.obtainMessage();                    mHandler.sendMessage(msg);            }        };        mTimer.schedule(timerTast, mTimeOut);    }}public static ProgressDialog createProgressDialog(Context context,        long time, OnTimeOutListener listener) {    ProgressDialog progressDialog = new ProgressDialog(context);    if (time != 0) {        progressDialog.setTimeOut(time, listener);    }    return progressDialog;}public interface OnTimeOutListener {    void onTimeOut(ProgressDialog dialog);}

}

0 0
原创粉丝点击