gpt4 book ai didi

android-intent - 关闭的应用程序未调用 Xamarin Android OnNewIntent

转载 作者:行者123 更新时间:2023-12-04 06:49:43 26 4
gpt4 key购买 nike

什么工作

我已经使用以下 Xamarin 指南为 Xamarin Forms 应用程序的 Android 端实现了推送通知:

https://developer.xamarin.com/guides/android/application_fundamentals/notifications/remote-notifications-with-gcm/

这很有效,我们正确地在应用程序运行时和在后台调用 OnNewIntent。然后我们调用我们的方法来处理推送通知的意图,一切都很好。

protected override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);
GoogleListenerService.ReceivedRemoteNotification(intent);
}

问题出在哪里

如果我们关闭应用程序,触发推送通知,然后单击推送通知,应用程序似乎不会调用 OnNewIntent,而是会像单击应用程序图标(调用 OnCreate)一样启动应用程序。

试过什么

我尝试实现的主要解决方法概述如下:
  • Android OnNewIntent not called

  • Xamarin 只有一个 GetIntent 方法,需要字符串 URL 输入,并使用以下结果在空数据中。
    Intent intent = new Intent(this, typeof(MainActivity));
    Bundle data = intent.Extras;
  • onNewIntent is not called

  • 在第二篇文章中,我们的意图服务、MainActivity.cs 文件和 list 文件中 LaunchMode = SingleTop 的所有更改都没有导致行为发生任何变化。

    编辑

    推送通知总是被接收并且 OnMessageReceived 总是被调用,无论应用程序是在后台还是完全关闭。此外, OnNewIntent 在应用程序处于后台时接收挂起的意图,而不是在它关闭时。
    this.Intent.Extras;

    始终显示为 null(当前位于 OnResume 方法中)。

    最佳答案

    在 Android 上接收通知时,无论您是接收通知还是数据通知以及应用程序的行为方式,都会有所不同。

    在此处查看云消息传递文档中的表格:https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages

    App State  |    Notification     |        Data        |    Both
    -------------------------------------------------------------------------------------
    Foreground | onMessageReceived | onMessageReceived | onMessageReceived
    Background | System tray | onMessageReceived | Notification: system tray
    Data: in extras of the intent

    您的通知到达 onMessageReceived的情况在您的服务中,您需要自己处理传入的通知,并自行决定是要显示通知还是执行其他操作。

    由此看来,您正在发送定期通知并准备 PendingIntent ,这就是触发 OnNewIntent 的原因当你按下它时。

    当应用程序在后台并且您会收到定期通知时,应用程序应该会定期启动。如果您已将数据附加到通知中,您应该可以从 Intent 中获取它。 Extras属性(property)。

    所以你在这里看到的是正确的行为。

    关于android-intent - 关闭的应用程序未调用 Xamarin Android OnNewIntent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447492/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com