Ответ 1
Взято из Документы Xamarin:
Бывают случаи, когда вам может понадобиться реализовать интерфейс Android, такой как Android.Content.IComponentCallbacks. Поскольку все классы и интерфейс Android расширяют интерфейс Android.Runtime.IJavaObject, возникает вопрос: как мы реализуем IJavaObject?
Вопрос был приведен выше: причина, по которой всем типам Android необходимо реализовать IJavaObject, - это то, что MonoDroid имеет Android-оболочку, предназначенную для Android, то есть прокси-сервер Java для данного типа. Поскольку monodroid.exe ищет только подклассы Java.Lang.Object и Java.Lang.Object реализует IJavaObject, ответ очевиден: подкласс Java.Lang.Object
В принципе, вы всегда должны унаследовать от Java.Lang.Object в этих случаях, поскольку реализация IJavaObject сама по себе не будет работать, поскольку Mono для Android не будет генерировать вызываемую оболочку.
Если это помогает, у меня есть пример реализации ILocationListener, доступного здесь. Он реализует его непосредственно над действием, но вы можете наследовать из Java.Lang.Object вместо Activity.