android - launch { whenStarted {} } 和 launchWhenStarted {} 完全一样吗?

标签 android coroutine activity-lifecycle coroutinescope

下面是不是一模一样?

lifecycleScope.launch {
    whenStarted { 
        // Do something
    }
}

lifecycleScope.launchWhenStarted {
    // Do something
}

或者它们确实有一些不同的目的,因此提供了两个 API?

最佳答案

lifecycleScope.launchWhenStarted {
    // Do something
}

只是简写

lifecycleScope.launch {
    whenStarted { 
        // Do something
    }
}

但是你可以做的是

lifecycleScope.launch {
    //do something here in general
    whenStarted { 
        // Do something onStart
    }
    whenCreated {
        // Do something onCreate
    }
    whenResumed {
        // Do something onResume
    }
}

归根结底的方法: launchWhenStartedlaunchWhenResumed创建时启动 都在砧板上。根据 Android 自己的说法,它们将在未来被删除。所以我会避免使用它们,即使它可以为您节省一两行代码。

来源: https://developer.android.com/reference/kotlin/androidx/lifecycle/LifecycleCoroutineScope

关于android - launch { whenStarted {} } 和 launchWhenStarted {} 完全一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70484900/

相关文章:

android - 从 ActionBar 获取项目 View

android - android Activity 生命周期函数的基础知识

java - 通过主屏幕替换技术了解 Android 上的自定义锁实现

java - 从 Activity 向 Fragment 传递数据不起作用

c++ - boost::asio::yield_context:意外的 forced_unwind 异常

python - 协程如何提高性能

c# - 等到协程完成后再启动另一个协程 [Unity C#]

android - Phonegap 电话 : uri not working on android even after whitelisting

安卓连接mysql

android - 开始太多 Activity ?