-3

onMessage 内から UI を更新したいと思います。

たとえば、更新の進行状況バーを使用します。どのように行うことができますか?

ネイサン

4

2 に答える 2

0

それを理解するための良い答えがあります。また、これらのコードを使用してください。ur Activity の 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 に答える
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 を使用して、メインのアクティビティでインテントをキャッチします。

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 に答える