当我从通知中打开一个Activity时,似乎清除了当前的活动堆栈。因为当我按下后退按钮时,应用程序关闭(应该返回上一个活动)。
我使用以下PendingIntent:
PendingIntent.getActivity(context, 0, new Intent(this, DetailsActivity.class, 0);
作为我的通知的内容意图。 DetailsActivity声明为“singleTop”。
理想的情况是只有在没有的情况下才能在堆栈顶部打开DetailsActivity。这似乎正是“singleTop”应该做的事情。
我的AndroidManifest看起来像这样:
<activity
android:name=".DetailsActivity"
android:label="@string/app_name"
android:theme="@style/Holo.Theme.Light"
android:launchMode="singleTop">
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Holo.Theme.Light" />
我使用NotificationCompat.Builder来构建通知。意图就像我的问题一样。 我使用时情况完全相同:
Intent intent = new Intent(context, DetailsActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(DetailsActivity.class);
stackBuilder.addNextIntent(intent);
PendingIntent pi = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
和:
<activity
android:name=".DetailsActivity"
android:label="@string/app_name"
android:theme="@style/Holo.Theme.Light"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
该项目使用HoloEverywhere库。我也不会覆盖onBackPressed()
为什么应用程序关闭而不是恢复以前的活动?