デバイス/アプリのC2DM登録トークンが変更されたときに、デバイスの永続データをネットワークサーバーに移行できるコードを記述しています。
これは、最終的にはブロードキャストレシーバー(具体的には、Google C2DM登録トークンを受信した結果として呼び出されるレシーバー)によって開始されます。
@Override
public void onRegistered(Context context, String registrationId) throws IOException {
Log.d(TAG, "registrationId: " + registrationId);
Intent selectIntent = new Intent(this, AlertMigrationService.class);
this.startService(selectIntent);
}
(注:私のアプリは、通常のApplicationクラスを拡張するカスタムアプリケーションクラスを使用しています。)
技術的には、アプリケーションがバックグラウンドにある(または実行されていない)ときにこのレシーバーを呼び出すことができると思います。インテントサービスを開始するとどうなりますか?アプリケーション全体をスプールして、Applicationクラスのインスタンスを作成しますか?
IntentService内からApplicationクラスの静的メソッドを呼び出すのは安全ですか(または良い考えです)?(これらの静的メソッドには、Application.onCreateで初期化された戻りオブジェクトがあります)