0

実装したGCMIntentServiceクラスのonRegisteredメソッドとonUnregisteredメソッドを使用して、MainActivityのTextViewのテキストを設定したいと思います。クラスが違うので直接設定できません。これを処理するための最良の方法は何でしょうか?

少し背景。TextViewを使用して、デバイスが登録されているかどうかのステータスを更新し、ユーザーにメッセージを表示しています。GCMIntentServiceに設定する理由は、これらのメソッドが削除されると、デバイスがタスクを完了したためです。現在、ユーザーが登録ボタンを押すと、ステータスが登録済みに切り替わりますが、デバイスはまだ完全に登録されていません。デバイスが登録されていると思われるため、混乱やエラーを引き起こしたくありません。

4

1 に答える 1

1

GCM サンプル アプリをご覧ください。これを行う方法は次のとおりです。

GCMBaseIntentService から拡張した GCMIntentService では、onRegistered/onUnregistered で、ブロードキャスト メッセージを送信できます (例では、DISPLAY_MESSAGE_ACTION)。「REGISTRATION_STATE」と言うように、登録状態をインテントに入れるだけです。次に、MainActivity で BroadcastReceiver を登録し、次のメッセージを探す必要があります。

private final BroadcastReceiver mHandleMessageReceiver =
        new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        mTextView.setText("Registration state is: " + intent.getExtras().getString("REGISTRATION_STATE");
    }
};
于 2012-10-16T14:56:11.580 に答える