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 回答