「Android/kotlin/別スレッド」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→別スレッド処理) |
(→別スレッド) |
||
| 行6: | 行6: | ||
} | } | ||
}).start() | }).start() | ||
| + | </pre> | ||
==別スレッドで非同期処理== | ==別スレッドで非同期処理== | ||
2020年4月21日 (火) 19:58時点における版
別スレッド
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"
}
}
