我有两个屏幕 - 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
我正在学习 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)