オレオレApplicationクラスって、コレのことなんですが、正式名称知らないので勝手にこう呼んでます(^_^;)

Xamarin.Android では、Application クラスを継承するのに加えてもう二手間くらい必要みたいです。割と苦労したのでメモしておきます。

AndroidManifest.xml へ追記

Xamarin.Android では最初は AndroidManifest.xml は存在しないのですが、このような手順で追加できます。

んで、<application> タグに android:name 属性を追記します。ここは Android本家と同じ要領です。

```xml AndroidManifest.xml


## Application クラスを継承したクラスを作る

次に、クラスの実装ですが、Application クラスから派生させる他、

* [Application] 属性を付ける
* ``(IntPtr, JniHandleOwnership)`` なコンストラクタを用意する

ことが必要なようです。

こんなかんじ。

```c# 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.");
        }
    }
}

アプリを動かすと、ログが出力されてるのでこの手順でいいのかと。

参考

Xamarin
Android
C#

published

Ads

Read more!

amay077

Microsoft MVP(Xamarin). フルリモートワーカー. Geospatial Mobile app developer. Love C#.

amay077 amay077