当前位置: 首页 > 知识库问答 >
问题:

当应用从通知启动时,如何重新创建最近的应用活动

艾雪风
2023-03-14

当我收到通知时,我的应用和活动在我最近的应用列表中。当我点击通知时,我希望通知的意图得到尊重。在我的例子中,我想重新启动活动(暴力)并传递新的意图:所以,完成,然后重新创建。我正在阅读一些标签,比如FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_SINGLE_TOP,但我对它们的理解还不够,不知道如何强制“完成然后重新创建”我的活动。哦,这个活动就是main ACTIVITY。

GcmListenerService中的代码片段使用

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

用于发送通知意图

或者说

如果我使用onNewIntent,事情会变得复杂,因为可能会显示DialogFragments等。我必须清除所有内容。这就是为什么完成然后重新创建对我来说似乎是最简单的解决方案。

共有1个答案

田柏
2023-03-14

意图标志FLAG_ACTIVITY_CLEAR_TOP应该产生所需的行为。任务和后退堆栈的留档在使用意图标志一节中说:

如果指定活动的启动模式为“标准”,它也将从堆栈中移除,并在其位置启动一个新实例来处理传入的意图。这是因为当启动模式为“标准”时,总是为新的目的创建一个新实例。

FLAG_ACTIVITY_CLEAR_TOP的文档更详细地描述了相同的行为。

 类似资料:
  • 我的应用程序有如下活动堆栈 A:加载活动 B:主要活动 C:细节活动 清单是这样的 当我从启动器启动应用程序时,它充当A- 但当我从通知启动应用程序时,因为我不想显示加载屏幕,启动活动B。所以,用户可以导航B- 但当用户在活动C中按Home键并从最近的应用程序列表中选择应用程序时,B会重新启动,状态不会保留。所以C活动总是消失。 我尝试了许多标志选项,但我没有找到解决方案。我想要的是应用程序的行为

  • 我正在编写一个使用fire base来实现通知的应用程序。在我的Mainactive中,我有一个带有一些url的WebView,但问题是当用户单击通知时,我想在WebView中使用不同的url打开MainActiviy。我读了很多,我在意图中添加了一个捆绑包(在单击通知时打开Mainactive),它会生成所需的url。但是当我单击通知时,Mainactive会重新启动,我的意思是,它不会转到on

  • 我正在我的应用程序中实施谷歌云消息服务(GCM)。我使用gcmIntent服务创建了一个挂起的意图并打开了一个不是启动活动的活动。当应用程序打开时,它工作正常。但当应用程序关闭时,它会打开启动活动而不是所需的活动。我尝试了我能找到的所有解决方案,但都不起作用。我挣扎了一个多星期。任何帮助都将不胜感激。 我的代码 我得到下面的堆栈跟踪

  • 我目前在活动A中。我收到通知,我想在单击通知时重新创建活动A(完成A,然后再次创建)。意向类似乎没有类似于Pending帐篷的标志。标记取消当前。

  • 我是Android Studio的新手,我一直在寻找答案,但不幸的是,我无法做到。我在创建新时遇到问题 我的Android Studio和我之前观看的视频的对比: 我已经试过右键单击另一张照片上的确切内容,并在每个文件夹中的任何位置单击鼠标右键,但仍然找不到新的

  • 我正在写一个UWP应用程序,我有一个ScheduledToastNotification在应用程序挂起时添加到日程中(例如,像一个提醒)。但是,如果我关闭了app,通知准时出现,但是当我点击通知时(没有按钮,一般只是在通知上),app没有正确启动,停在闪屏处。 如何使应用程序正确地重新启动? 多谢了。