I wanted to derive from the Android TextView class and then override OnTextChanged. The problem was that with Android 2.3 (in contrast to 4.0), the TextView constructor seems to trigger OnTextChanged and this leads to a System.NotSupportedException ("No constructor found for [...]::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership)")
This is a "leaky abstraction" problem described here: docs.xamarin.com/guides/android/advanced_topics/architecture/ and here: stackoverflow.com/questions/10593022/monodroid-error-when-calling-constructor-of-custom-view-twodscrollview
My question is now: I know how to fix the problem (by providing the missing constructor). However, I am using a lot of classes that inherit from Android Framework classes. With TextView we saw that there can be Android versions that produce problems and other versions that don't produce problems. What happens if a future Android version will produce such a leaky abstraction problem for a certain class?
I mean the following: I derive from an Android class and override a certain method. All existing Android version don't call this method from the class constructor. What happens if in a future Android version (e.g. 4.5) this certain method is called from the base constructor? Then my app would crash.
I cannot provide special constructors for all of my classes that inherit from Framework classes prophylactically.