单击服务生成的通知时,即使已经打开,主 Activity 也会再次打开

Posted

技术标签:

【中文标题】单击服务生成的通知时,即使已经打开,主 Activity 也会再次打开【英文标题】:Main Activity opens again even already opened when clicked on notification generated by service 【发布时间】:2021-10-29 17:09:06 【问题描述】:

在主要活动中,我正在加载片段,单击片段中的一项新的播放音乐的播放活动与服务一起启动,并生成通知。单击通知时,我正在向主要活动发送意图。我面临的问题是,当我在玩活动并点击通知时,主要活动会在现有的游戏活动上启动并重叠。如果应用程序已经在堆栈中,我想通知用户,否则启动主要活动

【问题讨论】:

【参考方案1】:

您需要在 mainfiest 文件中的活动中添加android:launchMode="singleTop" 标志,以确保打开当前活动实例而不是启动新实例。

<manifest
     <application
        <activity
            android:name="....MainActivity"
            android:launchMode="singleTop">

更新:

由于您有两个不同的活动,并且当前活动与通知启动的活动不同,因此请使用singleTasksingleInstance 标志。查看文档表in here。

【讨论】:

我也做了同样的事情,但问题是当我点击项目时,新活动启动并且主要活动进入暂停状态。在暂停状态期间,当我单击通知主 Activity 在该播放 Activity 上启动 通过将启动模式添加到 singleTask 来解决问题 @MuhammadSajid 正确,因为您的案例中有两种不同的活动 @MuhammadSajid 我想singleInstance 也适用于你的情况

以上是关于单击服务生成的通知时,即使已经打开,主 Activity 也会再次打开的主要内容,如果未能解决你的问题,请参考以下文章

单击通知不会打开 Android 应用程序

如何在通知单击时重新启动/刷新活动内容

在 Xamarin.Forms 中打开通知

单击本地通知时无法打开现有的正在运行的活动

在 Android 中单击通知时打开特定活动

如何在 C# 中单击通知图标来聚焦模态对话框?