Я использую глубокую ссылку, launchMode = "singleTask". Если есть экземпляр моей активности, все работает нормально: вызывается только onNewIntent. Но если экземпляра нет, сначала вызывается onCreate, затем onNewIntent и снова onCreate. Вот почему экран мерцает. В чем проблема? Я удалил весь код и только регистрировал события. Но такое же поведение наблюдается.
<activity
android:name="uz.avtobank.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:screenOrientation="nosensor"
android:theme="@style/SplashActivityTheme"
android:windowSoftInputMode="adjustResize|stateHidden">
<nav-graph android:value="@navigation/nav_graph_main" />
</activity>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setTheme(R.style.AppTheme)
setContentView(R.layout.activity_main)
val host = NavHostFragment.create(R.navigation.nav_graph_main)
supportFragmentManager.beginTransaction()
.replace(R.id.container, host)
.setPrimaryNavigationFragment(host)
.commit()
logMessage("onCreate ${intent.action}")
}
@SuppressLint("DefaultLocale")
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
logMessage("onNewIntent ${intent.action}")
handleIntent(intent)
}
private fun handleIntent(intent: Intent) {
if (intent.action != Intent.ACTION_VIEW)
return
try {
findNavController(R.id.container).handleDeepLink(intent)
} catch (e: IllegalStateException) {
} catch (e: IllegalArgumentException) {
}
setIntent(intent)
}
В журнале появляется следующее: Есть экземпляр: onNewIntent Нет экземпляра: onCreate, onNewIntent, onCreate
То же самое происходит даже при удалении Метод handleIntent.