package keijumt.devandroid.viewmodel import android.os.AsyncTask import keijumt.devandroid.common.Task import kotlinx.coroutines.experimental.async import kotlinx.coroutines.experimental.launch import javax.inject.Inject class AsyncViewModel @Inject constructor() : BaseViewModel() { fun async() { val calc = Task(object : Task.Callback<Int> { override fun execute(value: Int) { println("callback is ${value}") } }) calc.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) } fun coroutine() { launch { val result = calc(3).await() * calc(5).await() println(result) } } fun calc(num: Int) = async { return@async num * num } fun rx() { } }