Я определяю MainActivity как средство запуска в AndroidManifest.xml файл.
Код: Выделить всё
Код: Выделить всё
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyAppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = colorResource(id = R.color.white)
) {
val intent: Intent = getIntentForInitialLaunch()
startActivity(intent)
// finish() ← tried finishing the activity but did not solve the issue.
}
}
}
}
private fun getIntentForInitialLaunch(): Intent {
val activityToLaunch = if (hasLoggedIn()) {
WebViewActivity::class.java
} else {
LoginActivity::class.java
}
return Intent(this, activityToLaunch)
}
}
Я попробовал вызвать метод Finish() в MainActivity чтобы предотвратить его отображение, но это вызывает другую проблему: когда пользователь повторно открывает приложение в фоновом режиме, оно перезапускается с экрана-заставки, теряя состояние WebViewActivity. Это означает, что пользователь теряет свое место в WebView и должен начинать все сначала с корневого URL-адреса.
Вот краткое описание процесса:
Код: Выделить всё
MainActivity
Если вы вошли в систему, запускает WebViewActivity; если нет, запустите LoginActivity.
Нажатие обратно в LoginActivity или WebViewActivity в настоящее время отображает MainActivity (нежелательно).
Вызов Finish() в MainActivity решает проблему с кнопкой «Назад», но заставляет приложение перезапускаться с экрана-заставки при повторном открытии, теряя состояние WebView.
Как я могу добиться следующего:
Предотвратить видимость MainActivity при возврате из LoginActivity или WebViewActivity.
Сохранять состояние WebViewActivity при повторном открытии приложения из фон.
Мы будем очень признательны за любые предложения или рекомендации по решению этого сценария.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -state-whe