-3

我想从 onMessage 中更新 UI。

例如使用更新进度条,怎么做?

弥敦道

4

2 回答 2

0

看一下GCM 示例的工作方式。它使用以下方法与主要活动通信并更新 GUI:

static void displayMessage(Context context, String message) {
    Intent intent = new Intent(DISPLAY_MESSAGE_ACTION);
    intent.putExtra(EXTRA_MESSAGE, message);
    context.sendBroadcast(intent);
}

然后使用 BroadcastReceiver 在主 Activity 中捕获意图:

private final BroadcastReceiver mHandleMessageReceiver =
        new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
        mDisplay.append(newMessage + "\n");
    }
};

因此,您可以使用类似的方法与您的主要活动进行通信以更新 GUI。

于 2012-12-31T15:30:45.600 回答
0

有一个很好的答案可以弄清楚,我也希望你使用这些代码。您可以通过在您的活动中将其放在 onResume 上来获得意图。

将这些代码放在 GCMBaseIntentService 的 onMessage 中

if(isRunningActivity()){
        Intent pushReceivedIntent = new Intent(ACTION_PUSH);
        pushReceivedIntent.putExtras(intent.getExtras());
        context.sendBroadcast(pushReceivedIntent);
        return;
}

然后您可以使用接收器接收该意图

    //register as BroadcastReceiver for Push Action
    IntentFilter filter = new IntentFilter();
    filter.addAction(NotificationProcessor.ACTION_PUSH);
    mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // put here codes what you want
        }
    };
    registerReceiver(mReceiver, filter);

如果您有任何问题,请发表任何评论。希望对你有帮助

于 2014-03-12T14:11:46.713 回答