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


首先写一个类继承 AysyncTask:

package com.example.administrator.myyyyimport android.content.Contextimport android.os.AsyncTaskimport android.util.Logimport android.widget.ProgressBarimport android.widget.Toast/** * Created by Administrator on 2017/6/7. */class MyAsyncTask : AsyncTask(){    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()




更多相关文章

  1. Android(安卓)为什么主线程的looper 一直循环不会ANR
  2. android操作联系人Contacts
  3. 【Unity和Android相互调用】AndroidJavaProxy的使用(以C#为主导)
  4. Android(安卓)seekbar 滑动时上方显示进度
  5. Android(安卓)View 的刷新机制
  6. Android(安卓)Binder概述
  7. 基于Qt for Android联想到调用Android(安卓)API
  8. Android是否可以实现静默安装模式
  9. 源码解析Android中View的layout布局过程

随机推荐

  1. 基于word2vec和Elasticsearch实现个性化
  2. Elasticsearch:深入集群优化
  3. Elasticsearch 5.0.0集群安装
  4. ElasticSearch 全文搜索精确匹配中文短语
  5. Go:fmt.Scanln在控制台获取用户输入的值
  6. Elasticsearch—用logstash增量导入Mysql
  7. spark与kafka集成
  8. 一文读懂 TS 中 Object, object, {} 类型
  9. Kafka Consumer消费能力较低时的解决方案
  10. 实力解剖一枚挖矿脚本,风骚操作亮瞎双眼