Experiments Never Fail

Xamarin.Android でオレオレ Application クラスを使う

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

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

AndroidManifest.xml へ追記 #

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

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

<?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 クラスを継承したクラスを作る #

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

ことが必要なようです。

こんなかんじ。

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

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

参考 #

published at tags: Xamarin Android C#