Xamarin.forms FreshMvvm生命周期问题
我有一个使用FreshMvvm的xamarin.forms应用程序。App.xaml.cs中的以下方法处理推送通知: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
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)