Использование API-интерфейса Splash Screen setKeepOnscreenCondition при выборе места назначения по умолчаниюAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование API-интерфейса Splash Screen setKeepOnscreenCondition при выборе места назначения по умолчанию

Сообщение Anonymous »

В моей MainActivity мне нужно прочитать некоторые значения DataStore, чтобы решить, следует ли мне показывать LoginScreen или главный экран, поэтому я включил заставку перед вызовом onCreate(). Затем я использую runBlocking для получения значений и установки startDestination, как вы можете видеть ниже. Я ожидаю, что KeepOnScreenCondition покажет заставку, пока блокировка запуска устанавливает пункт назначения. Тем не менее, кажется, что он все равно исчезает достаточно рано, когда сначала отображается экран входа в систему (очень короткое время), а затем перемещается на главный экран (как и должно быть в моем случае).
Что я такое здесь отсутствует? Означает ли это, что блокируется только блок LaunchedEffect?
var isLoadingDataStoreTokens by remember { mutableStateOf(true) }
var startDestination : Destination by remember {
mutableStateOf(
LoginScreenDestination
)
}
val tokenManager: AuthTokenManager by inject()

LaunchedEffect(Unit) {
runBlocking {
val authToken = tokenManager.getBearerToken().first()
val isGuest = tokenManager.isGuest().first()
startDestination =
if (authToken != null && isGuest != null) DissertationsScreenDestination else LoginScreenDestination
isLoadingDataStoreTokens = false
}
}

splashScreen.setKeepOnScreenCondition {
!isLoadingDataStoreTokens
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... estination
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»