分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?

Posted

技术标签:

【中文标题】分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?【英文标题】:Grouped push notification is calling MainActivity's OnCreate() again. How to handle that? 【发布时间】:2019-10-02 13:51:24 【问题描述】:

我正在创建本地推送通知,效果很好。如果用户有超过三个打开的​​推送通知,则设备(三星平板电脑)会将它们组合在一起。现在问题开始了。如果用户点击组通知摘要,我的应用会像从未启动过一样打开(但它目前正在前台运行)。 调用MainActivityOnCreate() 方法,然后调用LoadApplication(new App()); 并在App.xaml.cs 中将我的第一个页面推送到导航堆栈。

如果我展开摘要,我可以单击单独的推送通知,然后OnNewIntent() 会被调用。

我 tried to add LaunchMode = LaunchMode.SingleTopMainActivity,但这并没有改变什么。然后我tried to useActivityFlags.SingleTop,在创建通知时结果相同

如何改进行为,使其不会将新页面推送到视图上?

【问题讨论】:

你在其他设备上试过了吗?一般设置LaunchMode = LauncMode.SingleTop,会在OnNewIntent()中调用,也可以尝试在androidMainfest.xml设置launchMode, @LeoZhu-MSFT:AndroidManifest.xml如何设置启动模式?我只有application 标签,没有activity 标签。但我认为Saamer 是对的,因为他发布的链接指出“如果您的应用发送四个或更多通知并且未指定组,系统会在 Android 7.0 及更高版本上自动将它们组合在一起。 ”。问题是我应该如何处理这种情况? 喜欢你的<activity android:name=".MainActivity" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity><application> 【参考方案1】:

很可能是因为三星平板电脑的版本 >= Android N 或 API 7.0。您需要使用通知组(不是频道组,因为您提到它不是 >8.0)才能正确处理通知的打开。

Android 可能很难。 Here's 来自官方 android 文档的一个很好的资源,关于如何做到这一点。

您如何set the group 以及如何获得groupID on tapping the notification。

【讨论】:

平板电脑运行的是 Android 7.1.1。如果我没看错,我必须创建一个群组通知吗?问题是,我不知道什么时候应该创建这样的组通知。我必须建立一个缓存才能知道有三个以上的通知?当用户点击组通知时,如何指定应该执行的操作?目前,我的目标不是 Android 8 - 所以通知渠道现在不应该成为话题。 用更多细节更新了这个 broski 感谢您的更新。所以我必须先创建组通知,然后再创建单独的单个通知?我如何知道何时创建群组通知?创建单个通知时的事件不在我的控制范围内(我事先不知道它们)。唯一的方法是缓存或类似的东西。但是您收集通知多长时间(而不是向用户显示)?如果超过三个,系统就会进行分组。此外,通知应立即显示给用户,而不是一小时后。我该如何处理?

以上是关于分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Parse.com 从推送通知中提取文本

Xamarin android-应用关闭时推送通知单击删除 SQLite 数据

Android - 对收到的推送通知进行分组,如 Gmail

如何将未读消息的iOS推送通知分组为一个

是否可以在 IOS 上再次请求推送通知?

Ionic 4 & Firebase (FCM) - 如何分组推送通知