GCM に登録しようとしています。
最初に getRegistrationID が null を返すかどうかを確認し、そうであれば、GCMRegistrar.register(context, sender_id) を呼び出しています。
問題は、登録が完了すると、
protected void onRegistered(Context context, String registrationId)
GCMIntentService クラス内にある呼び出しが行われています。
登録プロセスは別の asynctask (またはその他のバックグラウンド プロセス) を介して行われるため、この直後に getRegistrationID を呼び出すと、まだ登録プロセスを終了できないため、null が返されることがあります。
サーバーに送信する POST パラメータとして使用するため、regId をできるだけ早く、同じアクティビティから使用する必要があります。
登録が完了する前にユーザーが POST ボタンをすばやくクリックする可能性があり、値の代わりに null が返されるという状況に陥っています。
この問題にどのように取り組みますか? (回避策は、しばらくしてから再試行するようにユーザーに通知するメッセージを発行することです)。アイデア?