У меня есть два действия
-
MainActivity
-
DeepLinkActivity
Я настроил все, чтобы использовать NavUtils
для навигации, как рекомендуется здесь, здесь и здесь.
Чего я хочу достичь:
- Запустите
DeepLinkActivity
с помощью глубокой ссылки - Нажать вверх
- Перейдите к
MainActivity
Все работает хорошо, пока в моих приложениях есть какая-либо задача моего приложения.
Однако, когда я удаляю свое приложение из последних приложений, он ведет себя следующим образом:
- Удалите мое приложение из последних приложений.
- Запустите
DeepLinkActivity
с помощью глубокой ссылки - Нажать вверх
- Приложение закрывается, например, при нажатии
Я отлаживал код и выяснял, что NavUtils.shouldUpRecreateTask()
возвращает false
.
upIntent
имеет все нормальное значение, например my Component
.
Но все же NavUtils.navigateUpTo()
ведет себя точно так же, как вызов finish()
.
Нет оператора журнала, ничего.
Любые идеи, как это исправить?
AndroidManifest.xml
<activity
android:name=".DeepLinkActivity"
android:parentActivityName="my.package.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="my.package.MainActivity"/>
<intent-filter>
<!-- Some intent filter -->
</intent-filter>
</activity>
DeepLinkActivity.java
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
// create new task
TaskStackBuilder.create(this).addNextIntentWithParentStack(upIntent)
.startActivities();
} else {
// Stay in same task
NavUtils.navigateUpTo(this, upIntent);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
----- Редактировать -----
Я понял, что несколько Google Apps нарушены одинаково. Если вы прыгаете, например. в Контакты из поиска, нажмите вверх в AB, и вы окажетесь на главном экране вместо приложения для контактов. (API19/CM11)