「Android/kotlin/別スレッド」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→別スレッド処理) |
(→Task処理(HogeTaskService)だと同期処理された) |
||
| (同じ利用者による、間の2版が非表示) | |||
| 行6: | 行6: | ||
} | } | ||
}).start() | }).start() | ||
| + | </pre> | ||
==別スレッドで非同期処理== | ==別スレッドで非同期処理== | ||
| − | 以下非同期処理される | + | ===以下非同期処理される=== |
<pre> | <pre> | ||
Thread(object : Runnable { | Thread(object : Runnable { | ||
| 行35: | 行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"
}
}
