【发布时间】:2023-04-11 03:25:01
【问题描述】:
在我的应用程序中,我创建了一个启动 Details Activity 的通知。我想将此活动添加到 当前 任务(或返回堆栈)的顶部。例如,我希望应用程序任务(回栈)的行为如下:
但我明白了:
我没有使用FLAG_ACTIVITY_CLEAR_TASK 和FLAG_ACTIVITY_NEW_TASK 标志。我该怎么办?
编辑:第一张图片只是一个例子。我认为问题的标题是完全明确的。我想在当前堆栈顶部添加 Details Activity,而不是从新任务开始。
这就是我创建PendingIntent 的方式:
// Details activity intent
Intent intent = new Intent(context, DetailsActivity.class);
intent.putExtra(Com.KEY_ID, event.getId());
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
这是清单:
<activity
android:name=".MainActivity"
android:label="@string/app_name_system"
android:launchMode="singleTop"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".NoteActivity"
android:label="@string/app_name_system"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateHidden" />
<activity
android:name=".DetailsActivity"
android:launchMode="singleTop"
android:label="@string/app_name_system"
android:theme="@style/AppTheme.NoActionBar" />
【问题讨论】:
-
您是否尝试为意图设置标志
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP? -
@sup4eli 我现在做了,但没有结果。
-
你解决了吗?我也有同样的问题。每当我从通知开始活动时,它都会清除我当前的后台堆栈。
-
@AndreiVinogradov 不完全是,但我已经设法使用任务关联性解决了这个问题。阅读我的答案below。
-
是的,不完全一样,但我也发现你的方式最接近所需的行为。请接受您自己的答案,以使主题更加清晰。
标签: android android-notifications back-stack android-task