京都のスマートフォン・アンドロイドアプリ開発会社のサイトです!

TIPS
当社アプリに関するお知らせや開発裏話を綴ります。

BroadcastReceiver をインナークラス

Google+

AlartManager で一定間隔で処理を実行したい場合に、プログラム上インナークラスを定義したいときがある。AlartManager でBroadcastReceiver を継承したクラスを生成した場合、AndroidManifest.xml にそのクラスを定義する必要がある。
インナークラスの場合は、その親クラス名と$を付与した名称で記述することができる。

 <receiver android:name="TestActivity$TestService"></receiver>

その場合、大事なのが、インナークラスを static にする必要がある。

public class TestActivity extends Activity
{
    :
 
    public final static class TestService extends BroadcastReceiver
    {
        public void onReceive(Context context, Intent intent)
        {
              // process
        }
    }
 
    :
}

Copyright © 2011 HuNavi. All Rights Reserved.

このページの先頭へ