Application的OnCreate是Android程序真正的开始位置.
C#对象和Java对象通过Wrapper连接起来,大多数情况下,当调用C#的对象的构造函数的时候,会自动创建(IntPtr, JniHandleOwnership)的构造函数
但存在下面两种特殊情况,需要自己手动创建:
1.Android.App.Application,Application的默认构造函数永远都不会被调用,自然也就不会调用(IntPtr, JniHandleOwnership)构造函数了
2.在父类构造函数调用虚函数
[Application] public class LocationApplication : Android.App.Application { //不会被调用 public LocationApplication() { } public LocationApplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle,ownerShip) { }
}
必须手动添加(IntPtr, JniHandleOwnership)构造方法,否者会直接报错.
文献参考:
http://developer.xamarin.com/guides/android/under_the_hood/architecture/