以前のリビジョンの文書です
<code kotlin>
import android.os.AsyncTask
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)
Log.i("async","onCreate: ${Thread.currentThread().name}") button.setOnClickListener { MyAsyncTask().execute() }
}
inner class MyAsyncTask:AsyncTask<Void,Int,Void>(){
override fun onPreExecute() { Log.i("async","onPreExecute: ${Thread.currentThread().name}") super.onPreExecute() text.text="onPreExecute" Thread.sleep(800) }
override fun doInBackground(vararg p0: Void?): Void? { Log.i("async","doInBackground: ${Thread.currentThread().name}") for(i in 1..3){ publishProgress(i) Thread.sleep(800) } return null }
override fun onProgressUpdate(vararg values: Int?) { Log.i("async","onProgressUpdate: ${Thread.currentThread().name}") super.onProgressUpdate(*values) text.text="onProgressUpdate${values[0]}" }
override fun onPostExecute(result: Void?) { Log.i("async","onPostExecute: ${Thread.currentThread().name}") super.onPostExecute(result) text.text="onPostExecute!" }
}
}
↓
アプリ起動
onCreate: main
ボタン クリック
onPreExecute: main
doInBackground: AsyncTask #1
onProgressUpdate: main
onProgressUpdate: main
onProgressUpdate: main
onPostExecute: main
<code>