「Android/kotlin/別スレッド」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→別スレッドで非同期処理) |
(→Task処理(HogeTaskService)だと同期処理された) |
||
| 行36: | 行36: | ||
</pre> | </pre> | ||
| − | ===Task処理(HogeTaskService) | + | ===Task処理(HogeTaskService)だと同期処理される=== |
<pre> | <pre> | ||
Thread(object : Runnable { | Thread(object : Runnable { | ||
2020年4月24日 (金) 10:35時点における最新版
別スレッド
Thread(object : Runnable {
override fun run() {
// スレッド処理
}
}).start()
別スレッドで非同期処理
以下非同期処理される
Thread(object : Runnable {
override fun run() {
HogeService().execute()
}
}).start()
Thread(object : Runnable {
override fun run() {
HogeService().execute()
}
}).start()
internal class HogeService {
@Synchronized
fun execute(): Boolean {
Log.i(TAG, "処理開始")
Thread.sleep(5000)
Log.i(TAG, "処理終了")
return true
}
private val TAG = "HogeService"
}
Task処理(HogeTaskService)だと同期処理される
Thread(object : Runnable {
override fun run() {
HogeTaskService().execute()
}
}).start()
Thread(object : Runnable {
override fun run() {
HogeTaskService().execute()
}
}).start()
internal class HogeTaskService : AsyncTask<Void, Void, Boolean>() {
@Synchronized
override fun doInBackground(vararg params: Void?): Boolean {
Log.i(TAG, "処理開始")
//Thread.sleep(5000)
Log.i(TAG, "処理終了")
return true
}
override fun onPostExecute(result: Boolean) {
}
companion object {
private val TAG = "HogeService"
}
}
