C# 发送带有字符串的广播通知(UWP)
我需要在两个班级之间发送通知。 在安卓系统中,我使用了C# 发送带有字符串的广播通知(UWP),c#,xaml,uwp,C#,Xaml,Uwp,我需要在两个班级之间发送通知。 在安卓系统中,我使用了 Intent intent = new Intent(NOTIFICATION_KEY); intent.putExtra(ISFIRSTTIME, isfirsttime); LocalBroadcastManager.getInstance (AppDelegate.getContext()).sendBroadcast(intent); 并接受: private BroadcastReceiver multiselectR
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) {
}
};
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(multiselectNotification:)
name:kNotificationMultiselectController object:nil];
在IOS中:
[[NSNotificationCenter
defaultCenter]postNotificationName:kNotificationMultiselectController
object:[NSNumber numberWithBool:isFirstTime]];
并接受:
private BroadcastReceiver multiselectReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(multiselectNotification:)
name:kNotificationMultiselectController object:nil];
在C#中有许多松散耦合的消息传递解决方案,没有UWP特定的解决方案。如果您使用MVVM框架构建应用程序,它可能也会包含一个——例如Prism有
EventAggregator
,MvvmCross有MvxMessenger
,并且在MvvmLight中使用MessengerDefault
。我会选择其中一个框架,并使用提供的messenger功能,因为它经过了战斗测试且稳定。您甚至不必使用完整的MVVM框架本身,只需使用事件聚合器组件。有关其工作原理的更多信息,请参见示例
最基本的解决方案是使用基本的C#事件,但这些是强引用,这意味着您需要记住取消订阅已注册的事件,否则订阅者将保留在内存中