Xamarin.forms FreshMvvm生命周期问题

Xamarin.forms FreshMvvm生命周期问题,xamarin.forms,freshmvvm,Xamarin.forms,Freshmvvm,我有一个使用FreshMvvm的xamarin.forms应用程序。App.xaml.cs中的以下方法处理推送通知: public static async void NewCall(string message) { ... await Xamarin.Essentials.MainThread.InvokeOnMainThreadAsync(async () => { if (!I

我有一个使用FreshMvvm的xamarin.forms应用程序。App.xaml.cs中的以下方法处理推送通知:

   public static async void NewCall(string message)
    {
        ...
        await Xamarin.Essentials.MainThread.InvokeOnMainThreadAsync(async () =>
        {          
            if (!IsVideoCallViewOpen)
            {          
                var navService = FreshIOC.Container.Resolve<IFreshNavigationService>(FreshMvvm.Constants.DefaultNavigationServiceName);
                Page videoCallPage = FreshPageModelResolver.ResolvePageModel<VideoCallPageModel>();
                await navService.PushPage(videoCallPage, null);
            }

            VideoCallMessage caller = JsonConvert.DeserializeObject<VideoCallMessage>(message);
            VideoCallPeer peer = new VideoCallPeer(caller.UserId, caller.UserName, caller.FirstName);

            OnStartCall?.Invoke(null, peer);
        });
    }
下面是VideoCallPageModel的StartCallHandler(),它处理OnStartCall事件:

public void StartCallHandler(object sender, VideoCallPeer remotePeer)

您是否考虑过使用信息中心


您可以在确定已准备就绪后发送消息,然后无论订阅了什么,在收到消息后都会为您完成工作。

您考虑过使用消息中心吗?一旦你确定你已经准备好了,你可以发送一条消息,然后无论订阅了什么,都可以完成这项工作。谢谢你的建议。我想这可能有用。但这会增加设计的复杂性。如果没有更简单的方法,我会试试。我想知道是什么导致我的问题。看来我遗漏了一些关于FreshMvvm页面生命周期的信息。@Gaz Winter再次感谢您。请给我一个答案,我会这样做的。
public void StartCallHandler(object sender, VideoCallPeer remotePeer)