У меня есть простое приложение с двумя действиями. Вот манифест:
<application>
<activity
android:name=".ActivityA"
android:theme="@style/AppTheme.NoActionBar.Map">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".ActivityB"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="https://stackoverflow.com/"
android:scheme="http"
android:pathPrefix="/questions/ask"
/>
</intent-filter>
</activity>
</>
как вы можете видеть, когда будет нажата ссылка "https://stackoverflow.com/questions/ask" - мое приложение откроется второе занятие. В ActivityB я переопределяю метод onBackPressed:
override fun onBackPressed() {
if(isTaskRoot){
startActivity(Intent(this, MapActivity::class.java))
finish()
} else {
super.onBackPressed()
}
}
поэтому, когда вторая активность начинается со ссылки, и я нажимаю кнопку «Назад», ActivityA открывается, а ActivityB завершается.
на первый взгляд все выглядит нормально, но если после этого я нажму домашнюю кнопку, а затем перезапущу приложение из стека - вместо ActivityA снова откроется ActivityB.
Пожалуйста, объясните мне, почему это происходит и как решить эту проблему. Спасибо!
ОБНОВЛЕНИЕ после onBackPressed в ActivityB открывается ActivityA, а затем я нажимаю наBackBtn вместо HomeBtn, поэтому приложение закрывается. в этом случае после перезапуска из стека открывается ActivityB.