オレオレApplicationクラスって、コレのことなんですが、正式名称知らないので勝手にこう呼んでます(^_^;)
Xamarin.Android では、Application クラスを継承するのに加えてもう二手間くらい必要みたいです。割と苦労したのでメモしておきます。
Xamarin.Android では最初は AndroidManifest.xml は存在しないのですが、このような手順で追加できます。
んで、<application> タグに android:name
属性を追記します。ここは Android本家と同じ要領です。
//AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1" android:versionName="1.0" package="HelloXamarinAndroiid.HelloXamarinAndroiid">
<uses-sdk />
<application android:label="HelloXamarinAndroiid" android:name=".MyApplication">
</application>
</manifest>
次に、クラスの実装ですが、Application クラスから派生させる他、
(IntPtr, JniHandleOwnership)
なコンストラクタを用意することが必要なようです。
こんなかんじ。
//MyApplication.cs
namespace HelloXamarinAndroiid
{
[Application] // この属性が必要らしい
class MyApplication : Application
{
// このコンストラクタを明示的に override 剃る必要があるらしい
public MyApplication (IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
{
}
public override void OnCreate()
{
base.OnCreate();
// Test
Android.Util.Log.Debug("MyApplication", "OnCreate called.");
}
}
}
アプリを動かすと、ログが出力されてるのでこの手順でいいのかと。