这个比较简单,不多说,直接上代码,体验下,模拟下载环境下的下载进度对话框:
var mExcutor: ScheduledThreadPoolExecutor? = null
var progressDialog: ProgressDialog? = null
var progressValue = 0
var progressState = false
fun btnProgressDialog(){
btnProgressDialog.setOnClickListener {
if (progressState){
return@setOnClickListener
}
progressState = true
mExcutor = ScheduledThreadPoolExecutor(1)
if (null == progressDialog){
progressDialog = progressDialog("试试这个进度对话框", "进度")
}
progressDialog!!.show()
progressDialog!!.progress = 0
progressDialog!!.setCancelable(false)
mExcutor!!.scheduleAtFixedRate(mRunnable(), 100, 100, TimeUnit.MILLISECONDS)
}
inner class mRunnable:Runnable{
override fun run() {
proHandler.sendEmptyMessage(1)
}
}
var proHandler = Handler{
progressValue++
if (progressValue<101){
logging("当前进度值:$progressValue")
progressDialog!!.progress = progressValue
}else{
progressDialog?.dismiss()
mExcutor?.shutdownNow()
progressState = false
progressValue = 0
}
false
}