Android开发Android开发经验谈Android技术知识

kotlin协程分享

2019-04-13  本文已影响76人  LSteven

上周在公司做了个分享,转成图片发吧


coroutine.001.jpeg coroutine.002.jpeg coroutine.003.jpeg coroutine.004.jpeg coroutine.005.jpeg coroutine.006.jpeg coroutine.007.jpeg coroutine.008.jpeg coroutine.009.jpeg coroutine.010.jpeg coroutine.011.jpeg coroutine.012.jpeg coroutine.013.jpeg coroutine.014.jpeg
suspend fun displayMyMultipleChoiceDialog(): MyDialogResult {
    lateinit var result: Continuation<MyDialogResult>
    AlertDialog.Builder(this)
        .setTitle(...string resource...)
    .setMessage(...string resource...)
    .setPositiveButton(...RETRY string..., { dialogInterface: DialogInterface, _: Int ->
        dialogInterface.dismiss()
        result.resume(MyDialogResult.RETRY)
    })
    .setNegativeButton(...CANCEL string..., { dialogInterface: DialogInterface, _: Int ->
        dialogInterface.dismiss()
        result.resume(MyDialogResult.CANCEL)
    })
    .setOnCancelListener {
        result.resume(MyDialogResult.CANCEL)
    }
    .create()
    .show()

    return suspendCoroutine {continuation -> result = continuation}
}

fun myPresenterMethod() {
    launchAsync {
        when (view.displayMyMultipleChoiceDialog()) {
            RETRY -> ...do something...
            CANCEL -> ...do something else...
        }
    }
}

btw最近准备看一下redex~ 希望能尽快出专题

上一篇 下一篇

猜你喜欢

热点阅读