當我們使用Xamarin.Android建立Android應用的時候,Xamarin.Andriod會自己建立Application類,但有時候你可能會想使用自己建立的自定義application類來實作一些功能,比如偵測應用是在前台運作還在是在背景運作,就像這樣建立:
public class MyApplication : Application
在java裡你要隻向AndroidManifest.xml裡添加一句:
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name=".MyApplication">
就能建立成功自定義的MyApplication類。
但是,在Xamarin裡這樣做是會報錯的:
而你檢視文檔的時候,文檔會說:
Name String. TODO: Not supported. The name of the class to that implements the application.
也就是說,Application的Name屬性不支援。
但是,事實上文檔是過期的,這裡有最新的解決方法。
首先你要建立一個具有兩個特殊參數的構造器的自定義Application類,同時要還加上[Application]的特性。
[Application]
public class MyApplication : Application
{
public MyApplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip)
{
}
}
同時,你還要重寫OnCreate方法,不然你的自定義Application類不會被調用。
public override void OnCreate()
{
base.OnCreate();
}