分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?
Posted
技术标签:
【中文标题】分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?【英文标题】:Grouped push notification is calling MainActivity's OnCreate() again. How to handle that? 【发布时间】:2019-10-02 13:51:24 【问题描述】:我正在创建本地推送通知,效果很好。如果用户有超过三个打开的推送通知,则设备(三星平板电脑)会将它们组合在一起。现在问题开始了。如果用户点击组通知摘要,我的应用会像从未启动过一样打开(但它目前正在前台运行)。
调用MainActivity
的OnCreate()
方法,然后调用LoadApplication(new App());
并在App.xaml.cs
中将我的第一个页面推送到导航堆栈。
如果我展开摘要,我可以单击单独的推送通知,然后OnNewIntent()
会被调用。
我 tried to add LaunchMode = LaunchMode.SingleTop
到 MainActivity
,但这并没有改变什么。然后我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()。如何处理?的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin android-应用关闭时推送通知单击删除 SQLite 数据