发送带有字符串的广播通知(UWP)

时间:2018-10-08 08:59:00

标签: c# xaml uwp

我需要在两个班级之间发送通知。 在Android中,我已使用

Intent intent = new Intent(NOTIFICATION_KEY);
intent.putExtra(ISFIRSTTIME, isfirsttime);     
LocalBroadcastManager.getInstance
(AppDelegate.getContext()).sendBroadcast(intent);

并接受:

private BroadcastReceiver multiselectReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {

}
};

在IOS中:

[[NSNotificationCenter 
defaultCenter]postNotificationName:kNotificationMultiselectController 
object:[NSNumber numberWithBool:isFirstTime]];

并接受:

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(multiselectNotification:) 
name:kNotificationMultiselectController object:nil];

1 个答案:

答案 0 :(得分:1)

对于C#中的松耦合消息传递,有许多解决方案,而这些解决方案都不是特定于UWP的。如果您使用MVVM框架构建应用,则该应用可能还会包含一个框架-例如Prism具有EventAggregator,MvvmCross具有MvxMessenger,而在MvvmLight中则使用MessengerDefault。我会选择一种框架,并使用所提供的Messenger功能,因为它已经过战斗测试并且稳定。您甚至不必使用完整的MVVM框架本身,而只需使用事件聚合器组件。有关其工作原理的更多信息,请参见例如this MSDN blogpost

最基本的解决方案是使用基本的C#事件,但是它们是强大的引用,这意味着您需要记住取消订阅已注册的事件,否则订阅者将保留在内存中。