Android でアプリケーション開始時と終了時にごにょごにょする

怒濤のリリースラッシュも無事に終え、先日はまっていたエコ化+高速化も乗り越え(最後はやはり skia との格闘戦でした;;)てバージョンアップリリースの目処が立ってきたので今日は少しネットを見ています。

Android の static 変数はヤバい
http://amay077.posterous.com/android-static

※だれか Activity じゃなくて ”アプリケーション" が終了するタイミングを補足する方法、教えてください

コメントを見ると既に解決されたっぽいですね。なので話をちょこっとずらして、アプリの開始と終了時に何かしらごにょごにょする方法をご紹介。

アプリの開始と終了時に何かしらごにょごにょするには、android.app.Application を継承したクラスで行うことができます。以下は、アプリの開始/終了時に GoogleAnalyticsTracker を開始/終了させるシナリオの例です。(googleAnalytics.dispatch は通信時にやる前提です)

package com.orangesignal.android.apps.hoge;

public final class Hoge extends android.app.Application {

    /**
     * 共通 {@link GoogleAnalyticsTracker} オブジェクトのインスタンスです。
     */
    public static final GoogleAnalyticsTracker googleAnalytics = GoogleAnalyticsTracker.getInstance();

    @Override
    public void onCreate() {
        super.onCreate();
        googleAnalytics.start("UA-XXXXXXXX-X", this);  // TODO: Web プロパティID は自分のに書き換える
    }

    @Override
    public void onTerminate() {
        googleAnalytics.stop();
        super.onTerminate();
    }

}

そして、例によって AndroidManifest.xml へ使用するアプリケーションクラスを明示的に定義します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.orangesignal.android.apps.hoge" android:versionCode="1" android:versionName="1.0.0">

  <application android:debuggable="true"
               android:icon="@drawable/icon"
               android:label="@string/app_name"
               android:name=".Hoge">

    (中略…ここにサービスやアクティビティなどを定義します)

  </application>

</manifest>

※何だか備忘録的内容になってしまいましたがこの記事がどなたかのお役に立てれば幸いです。