fix: 将 MainActivity 首启标记消费移到 SideEffect

This commit is contained in:
fansan
2026-06-14 12:29:05 +08:00
parent 6fe839b6e7
commit 584891a84e
@@ -20,6 +20,7 @@ import androidx.compose.animation.scaleOut
import androidx.compose.animation.togetherWith import androidx.compose.animation.togetherWith
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
@@ -193,16 +194,18 @@ open class MainActivity : BaseComposeActivity(), VariableDialog.Callback {
} }
val startRoutes = remember { val startRoutes = remember {
val routes = resolveInitialStartRoutes( resolveInitialStartRoutes(
resolved = MainNavigator.resolveStartRoute(intent), resolved = MainNavigator.resolveStartRoute(intent),
defaultToRead = OtherConfig.defaultToRead, defaultToRead = OtherConfig.defaultToRead,
isFreshCreate = shouldApplyDefaultToRead, isFreshCreate = shouldApplyDefaultToRead,
) ).toTypedArray()
shouldApplyDefaultToRead = false
routes.toTypedArray()
} }
val backStack = rememberNavBackStack(*startRoutes) val backStack = rememberNavBackStack(*startRoutes)
SideEffect {
shouldApplyDefaultToRead = false
}
LaunchedEffect(backStack) { LaunchedEffect(backStack) {
routeEvents.collect { route -> routeEvents.collect { route ->
MainNavigator.navigateToRoute(backStack, route) MainNavigator.navigateToRoute(backStack, route)