天天看點

Xamarin.Android使用自定義application類的方法

當我們使用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();
}