Мое приложение имеет MainActivity и DetailActivity.Я использую TaskStackBuilder, как предложено здесь , чтобы показать DetailActivity при нажатии на уведомление, а также создать стек, чтобы при нажатии пользователем кнопки назад приложение плавно отображало MainActivity.
private fun buildPendingIntent(context: Context, uuid: String,
notificationId: Int): PendingIntent? {
// Create an Intent for the activity you want to start
var resultIntent = Intent(context, DetailActivity::class.java)
resultIntent.putExtra(DetailActivity.INTENT_KEY_UUID, uuid)
return TaskStackBuilder.create(context).run {
addNextIntentWithParentStack(resultIntent)
getPendingIntent(notificationId, PendingIntent.FLAG_UPDATE_CURRENT)
}
}
это в манифесте
<activity
android:name=".view.common.DetailActivity"
android:launchMode="singleTask"
android:parentActivityName=".view.home.MainActivity"
android:theme="@style/MyAppTheme.DetailView">
</activity>
Проблема, с которой я столкнулся, заключается в том, что при нажатии на уведомление я вижу MainActivity в течение короткого периода времени, а затем показывает DetailActivity.Я хочу видеть только DetailActivity, и только кнопка "Назад" должна перевести пользователя в MainActivity (не должно иметь значения, является ли приложение приоритетным / фоновым / уничтоженным).
Если я удаляю parentActivityName в Manifest, то я вижуоднако непосредственно в DetailActivity, когда я нажимаю кнопку «назад», требуется некоторое время, чтобы отобразить MainActivity (когда приложение еще не находится в переднем / заднем плане).
DetailActivity onBackPressed ():
override fun onBackPressed() {
if (isTaskRoot) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
} else {
super.onBackPressed()
}
}
Короче говоря, я хочу, чтобы DetailActivity отображалась непосредственно при нажатии на уведомление и при нажатии кнопки "Назад". MainActivity отображается без загрузки / задержки.