内容へ移動
猫型iPS細胞研究所
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
INDEX
»
kotlin
»
AsyncTaskとCoroutine
トレース:
•
リンク
•
経験値
kotlin:asynctaskとcoroutine
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== AsyncTaskとCoroutine ====== [[https://qiita.com/naoi/items/9db5e58d4f47d25a19d5|AsyncTaskと同等の機能をKotlinのCoroutine(コルーチン)で実装]] ===== AsyncTask ===== <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> ===== coroutine ===== <code> button.setOnClickListener { text.text="Pre" GlobalScope.launch(){ for(i in 1..10){ delay(800) text.text="coroutine:(${i}) ${Thread.currentThread().name}" // ここからは画面を編集できないと思ったけどできた。。。何故? } } text.text="End" } </code>
kotlin/asynctaskとcoroutine.txt
· 最終更新: 2019/10/12 17:03 by
ips
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ