当我收到通知时,我的应用会将用户导航到应用的详细信息屏幕,这是将在通知点按上打开DetailActivity的代码。
Intent nextIntent = new Intent(context, DetailActivity.class);
nextIntent.putExtra(FROM_NOTIFICATION, true);
nextIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
TaskStackBuilder taskStack = TaskStackBuilder.create(context);
taskStack.addNextIntent(nextIntent);
PendingIntent pendingIntent = taskStack.getPendingIntent(getNotificaitonId(userContact.getPhone()),
PendingIntent.FLAG_UPDATE_CURRENT);
如果用户通过按主页按钮离开应用程序MainActivity仍然存在,当用户从通知中获取DetailActivity时,我观察者MainActivity被破坏了。
如果MainActivity仍然存在,如何避免破坏它?
另外,为了让用户在来自DetailActivity时回到MainActivity,这就是我在OnBackPressed()
if( isComingFromNotificationScreen ) {
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent) || isTaskRoot()) {
TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
} else {
NavUtils.navigateUpTo(this, upIntent);
}
}
else
{
super.onBackPressed();
}