我需要在两个班级之间发送通知。 在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];
答案 0 :(得分:1)
对于C#中的松耦合消息传递,有许多解决方案,而这些解决方案都不是特定于UWP的。如果您使用MVVM框架构建应用,则该应用可能还会包含一个框架-例如Prism具有EventAggregator
,MvvmCross具有MvxMessenger
,而在MvvmLight中则使用MessengerDefault
。我会选择一种框架,并使用所提供的Messenger功能,因为它已经过战斗测试并且稳定。您甚至不必使用完整的MVVM框架本身,而只需使用事件聚合器组件。有关其工作原理的更多信息,请参见例如this MSDN blogpost。
最基本的解决方案是使用基本的C#事件,但是它们是强大的引用,这意味着您需要记住取消订阅已注册的事件,否则订阅者将保留在内存中。