实现“GcmClient.Register(this,Constants.SenderID);”在非活动类

时间:2017-02-06 13:30:02

标签: xamarin.android google-cloud-messaging android-notifications gsm azure-notificationhub

我正在尝试使用Android Xamarin项目中的Google云消息传递实现接收/推送天蓝色通知 我已经关注"Get started with Notification Hubs with Xamarin for Android"文章,一切都很顺利,我可以收到通知!

在本文中,我们在MainActivity类

中添加了这些代码行
GcmClient.CheckDevice(this); 
GcmClient.CheckManifest(this);
GcmClient.Register(this, Constants.SenderID);

但我们出于某种原因不使用活动类,我需要在非活动类中应用提到的代码, 因为上面代码的输入“this”是“Android.Content.context” ,我试图获取Android.Content.context并将其作为参数发送到CheckDevice和CheckManifest方法

var _this = Android.App.Application.Context;
GcmClient.CheckDevice(_this);
GcmClient.CheckManifest(_this);

但我在“GcmClient.CheckManifest(_this);”中得到以下错误线

enter image description here

我在这方面很新,但我想我在清单文件中添加了一些信息,如果你帮助我实现非活动类中关于GcmClient的提及代码以实现通知,我真的很感激

由于

1 个答案:

答案 0 :(得分:0)

如此forum中所述,System.Reflection当后者捕获异常时尝试查询/操纵/调用反映的实例成员之一时抛出它。同样基于此thread" TargetInvocationException通过告诉您在"方法调用"期间崩溃,通常通过{{1}来屏蔽真正的异常}。您需要做的是查看异常对象的InnerException属性(TargetInvocationException对象),这将为您提供抛出的实际异常,并提供更有用的堆栈跟踪。&#34 ;