LoginSignup
3
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-04-05

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

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

AndroidManifest.xml へ追記

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

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

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

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

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2