初期化処理はここで。Applicationクラスを継承したカスタムApplicationクラスを作る!

投稿日:2017年11月5日 更新日:

Applicationクラスを拡張して、カスタムApplicationクラスを作ってみましょう!Applicationクラスは、アプリケーション全体の状態を管理するためのクラスです。ライブラリの初期化処理などを行ったりします。

Applicationクラスを作る

まずはApplicationクラスのひな形を作ってみましょう。

はじめにクラスファイルを作成します。クラス名は独自のApplicationクラスであることがわかればなんでもいいので、ここは適当にMyApplicationクラスとして作成します。MyApplicationクラスを作成したら、extends Applicationとして、Applicationクラスを継承します。

import android.app.Application;

public class MyApplication extends Application {
    //do something here
}

次に、AndroidManifests.xmlに作成したカスタムApplicationクラスを登録します。これを忘れるとカスタムApplicationクラスが呼び出されないので、忘れずに登録しましょう。AndroidManifests.xmlのapplicationの中にandroid:name=".MyApplication"という記載を追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jp.rocketapps.sample">

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

これでカスタムApplicationクラスが呼び出されるようになります!次はカスタムApplicationクラスの中身を作ってみましょう。

カスタムApplicationクラスを実装する

カスタムApplicationクラスの中身を実装してみましょう!カスタムApplicationクラスで良く使うのは、onCreateメソッドです。アプリが起動された時に呼び出されるので、ここでライブラリの初期化などを行ったりします。

import android.app.Application;
import android.util.Log;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Log.v("MyApplication", "onCreate!");
    }
}

アプリを起動すると、「MyApplication: onCreate!」というログが出力されると思います。これでカスタムApplicationクラスが呼び出されていることが確認できました。

実装の内容を確認します。MyApplicationクラスの中で、親クラス(Applicationクラス)のonCreateメソッドをオーバーライドして、その中で親クラスのonCreateメソッドを呼び出しています。あとは、この中でライブラリの初期化処理を行うなど、よしなに...。

まとめ

Applicationクラスを拡張したカスタムApplicationクラスを作りました!このクラスの中では、ライブラリの初期化処理など、アプリ全体の状態を管理することができます。

茨城県つくば市在住のAndroidアプリエンジニアです。

-Android

Copyright© Androidアプリ開発@つくば , 2017 AllRights Reserved Powered by AFFINGER4.