【Android/Kotlin Coroutines】withTimeoutの使い方!タイムアウトの実装

【Android/Kotlin Coroutines】withTimeoutの使い方!タイムアウトの実装

この記事からわかること

  • Android StudioKotlin CoroutineswithTimeout使い方
  • タイムアウト機能実装方法

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

withTimeout

Kotlin Coroutinesで非同期処理を実装する際に一定時間内に処理が完了しなければキャンセルさせるためにはwithTimeout関数を使用します。引数にはタイムアウトとして設ける時間をミリ秒単位(Long型)で指定します。指定した秒数が経過しても処理が完了にならなかった場合はTimeoutCancellationExceptionがスローされます。

try {
    // 3秒のタイムアウトを設ける
    withTimeout(3000) {
        repeat(10) { i ->
            println("処理中... $i")
            delay(1000) // 1秒待つ
        }
    }
} catch (e: TimeoutCancellationException) {
    println("タイムアウトしました!")
}

返り値も取得可能

withTimeoutブロック内のsuspend関数が戻り値を返す場合はブロックの返り値としてその値を取得することが可能です。

try {
    val result: String = withTimeout(3000) {
        fetchData()
    }
    println("結果: $result")
} catch (e: TimeoutCancellationException) {
    println("タイムアウトしました")
}

withTimeoutOrNull

タイムアウトエラーの場合にエラーを投げたくない場合はwithTimeoutOrNullを使用します。タイムアウトした場合にnullが返却されるようになります。

val result: String? = withTimeoutOrNull(500) {
    fetchData()
}

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article