Android/kotlin/別スレッド
提供: 初心者エンジニアの簡易メモ
別スレッド
Thread(object : Runnable {
override fun run() {
// スレッド処理
}
}).start()
==別スレッドで非同期処理==
以下非同期処理される
<pre>
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"
}
}
