У меня есть два действия
-
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)