kotlin 之 Android AsyncTask
2017-06-07 15:07
316 查看
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()
首先写一个类继承 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()
相关文章推荐
- Android--AsyncTask实例
- Android--AsyncTask实例
- Android 使用AsyncTask 后监听异步加载完毕的动作 推荐
- android线程异步处理之AsyncTask
- AsyncTask解决Android UI堵塞问题
- Android 使用AsyncTask后台线程实现数据异步刷新
- Android 使用AsyncTask 后监听异步加载完毕的动作
- Android自用-----AsyncTask实现异步处理任务
- Android开发中AsyncTask实现异步处理任务的方法
- AsyncTask实例代码演示Android异步任务
- Android AsyncTask 的使用
- Android AsyncTask
- Android 中文 API (101) —— AsyncTask
- Android中的AsyncTask
- Android asyncTask
- AsyncTask解决Android UI堵塞问题
- Android用AsyncTask来下载图片及用AsyncTask的好处
- [android 多线程]一些帖子与文章ProgressDialog, AsyncTask, Thread
- android之多线程工作(一)AsyncTask
- Android AsyncTask