小编Bia*_*ali的帖子

如何防止在返回时重新渲染上一个屏幕 - Jetpack Compose?

在此输入图像描述

我有两个屏幕 - MapScreen(Google Map SDK)Search Screen

我通过按顶部的“搜索”按钮从 MapScreen 导航到 SearchScreen。

当我在搜索屏幕(白色屏幕)上时 - 我按后退按钮导航回地图屏幕。

当我们向后导航时,整个 MapScreen(尤其是 Google 地图)会重新渲染,这会造成向后导航的延迟。

如何防止地图屏幕在返回时重新渲染?

我的导航代码:

val navController = rememberNavController()
            NavHost(
                navController = navController,
                startDestination = Route.MAP
            ) {
                composable(Route.MAP) {
                    MapScreen(onNextClick = {
                        navController.navigate(Route.SEARCH)
                    })
                }
                composable(Route.SEARCH) {
                    SearchScreen()
                }
            }
Run Code Online (Sandbox Code Playgroud)

android google-maps-android-api-2 android-jetpack android-jetpack-navigation android-jetpack-compose

8
推荐指数
1
解决办法
2067
查看次数

即使应用程序尚未启动,Android 中 WorkManager 的工作线程是否也会开始运行?

我正在学习 Udacity Android Kotlin 开发人员课程。在其中一课中,讲师教授了如何使用 WorkManager 执行后台任务,始终在后台缓存数据,以便在应用程序启动时显示新数据。

因此,启动 WorkManager 定期刷新数据的代码是在应用程序的主应用程序中定义的。

class DevByteApplication : Application() {

/**
 * onCreate is called before the first screen is shown to the user.
 *
 * Use it to setup any background tasks, running expensive setup operations in a background
 * thread to avoid delaying app start.
 */
val applicationScope = CoroutineScope(Dispatchers.Default)

override fun onCreate() {
    super.onCreate()
    Timber.plant(Timber.DebugTree())
    delayedInit()
}

private fun delayedInit() = applicationScope.launch {
    setupRecurringWork()
}

private fun setupRecurringWork() {
    val constraints = …
Run Code Online (Sandbox Code Playgroud)

android backgroundworker kotlin android-workmanager

5
推荐指数
1
解决办法
3734
查看次数