kotlin 之 Android AsyncTask


kotlin 成为Android 的新宠,在此处简单介绍一下 AsyncTask :


首先写一个类继承 AysyncTask:

package com.example.administrator.myyyy

import android.content.Context
import android.os.AsyncTask
import android.util.Log
import android.widget.ProgressBar
import android.widget.Toast

/**
 * Created by Administrator on 2017/6/7.
 */
class MyAsyncTask : AsyncTask<String,Int,String>(){

    var progressBar : ProgressBar?=null
    var i = 0
    var context :Context?=null
    //任务执行之前开始调用此方法,可以在这里显示进度对话框。
    override fun onPreExecute() {
        super.onPreExecute()
        Log.d("duke","开始")
    }


    //此方法在后台线程 执行,完成任务的主要工作,通常需要较长的时间。
    override fun doInBackground(vararg p0: String?): String {

        while (i<1000000){
            i = i+10
         publishProgress(i)

        }
        return "js"
    }

    //更新UI
    override fun onProgressUpdate(vararg values: Int?) {
        super.onProgressUpdate(*values)

        //若有复杂逻辑,可以增加异常捕捉
        progressBar?.progress = values?.get(0) ?: 0
    }

    //任务执行完了后执行
    override fun onPostExecute(result: String?) {
        super.onPostExecute(result)
       
        Toast.makeText(context,"进程结束",Toast.LENGTH_LONG).show()
    }
}


在主线程调用:

        progressBar = findViewById(R.id.progressBar) as ProgressBar
        progressBar?.max = 1000000
        var myAsyncTask = MyAsyncTask()
        myAsyncTask.progressBar = progressBar
        myAsyncTask.context = this
        myAsyncTask.execute()




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值