Xamarin 中的 Android ParsePushBroadcastReceiver

Posted

技术标签:

【中文标题】Xamarin 中的 Android ParsePushBroadcastReceiver【英文标题】:Android ParsePushBroadcastReceiver in Xamarin 【发布时间】:2016-09-28 17:40:17 【问题描述】:

我正忙着将用 android Java 编写的应用“重新创建”到 Xamarin C#

我需要将一个类扩展为 NuGet 上的 Parse 库中可用的 ParsePushBroadcastReceiver,并能够覆盖 OnReceive 方法。在 Java 中,该库是可扩展的,如无数 *** 问题中所见,但在 Xamarin 中,该类是密封的,无法扩展。

https://***.com/a/26180181/1876355

How to add "ParsePushBroadcastReceiver.getActivity" to an application?

我不知道如何解决这个问题,因为存在需要在 OnReceive 方法中执行的现有代码。

有什么想法吗?

【问题讨论】:

这个bug好像已经被报告了github.com/ParsePlatform/Parse-SDK-dotNET/issues/152 【参考方案1】:

Looks like a bug

也许您现在可以重新创建该类,然后在 Parse 库的未来版本发布时替换?

namespace WorkAround.Parse 

    [Register("parse.ParsePushBroadcastReceiver")]
    public class ParsePushBroadcastReceiver : BroadcastReceiver 
    
        internal const string KeyPushData = "com.parse.Data";
        internal const string ActionGcmRegisterResponse = "com.google.android.c2dm.intent.REGISTRATION";
        internal const string ActionGcmReceive = "com.google.android.c2dm.intent.RECEIVE";
        public override void OnReceive(Context context, Intent intent) 
            intent.SetClass(context, typeof(ParsePushService));
            ParseWakefulHelper.StartWakefulService(context, intent);
        
    

【讨论】:

我复制了你的整个命名空间,包括 Parse;,将 Parse dot net SDK...Parse/Internal/Push/Android/ParseWakefulHelper.cs 的内容复制到 WorkAround.Parse 并扩展到 : WorkAround.Parse.ParsPush... 完美运行 很高兴听到它有帮助!请记住在解决 github 问题后解决此问题 :)

以上是关于Xamarin 中的 Android ParsePushBroadcastReceiver的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Android 中的后台执行

XMPP (Xamarin.Android) 中的主机未知异常

有没有办法使用 Xamarin.Forms PCL 项目中的 Devexpress.Xamarin.Android.Charts

Xamarin.Android 中的错误局部变量类型不匹配

Visual Studio 2017 中的 Xamarin (Android) 单元测试

Xamarin:用于 Android 和 Windows UWP 的 Xamarin 表单中的分组列表的垂直字母索引(跳转列表)