我正在创建一个应用程序,当我使用 MessagingCenter 发送时,它需要将参数发送到另一个页面并使用 MessagingCenter 发送参数,它调用了多次。
如果我在下次使用 unscribe 时,下次就不会收到了。
MessagingCenter.Send(this, "Invoke", "Invokedtrue");
MessagingCenter.Subscribe<MyPage, string>(this, "Invoke", async (sender, arg) =>
{
await Process(arg);
});
MessagingCenter.Unsubscribe<MyPage>(this,"Invoke");
**ListPage**
private void ViewCell_Tapped(object sender, EventArgs e)
{
try
{
MessagingCenter.Send(this, "Invoke", "Invokedtrue");
}
catch (Exception ex)
{
Debug.Write(ex);
}
}
**Detail Page**
MessagingCenter.Subscribe<ListPage, string>(this, "Invoke", async (sender, arg) =>
{
await Process(arg);
});
private async Task Process(string arg)
{
//Here is api call to view detail of particular record
//Here I unsubscribe the MessagingCenter.
MessagingCenter.Unsubscribe<ListPage>(this,"Invoke");
}
我只想使用订阅发送一次,并且只发送一次。
任何人都可以对此进行调查并建议我该怎么做吗?