Androidのアカウントを使用するログイン/ログアウトを備えたアプリケーションがあります。私もGCMを使用しているので、ユーザーがログインするとデバイスを登録し、ユーザーがログアウトすると登録を解除します。登録解除の呼び出しで問題に直面しています。
デバイスをサーバーから登録解除するには、アカウントのトークンが必要です。GCMIntentService から onUnregistered メソッドに渡すことができないので (または少なくとも方法がわからない)、AccountManager を使用して取得しようとしましたが、その時点でアカウントは既に削除されています。私はそれを解決したいのですが、2 つの選択肢が思い浮かびました。
1- 最初に GCMRegistrar.unregister を呼び出し、GCMIntentService->onUnregistered 関数でアカウントを削除します。このソリューションの問題は、ユーザーが登録解除が完了するまで待たなければならないことです。アカウントを削除せずにユーザーを続行させることはできません。
2- トークンをどこかに保存して (おそらくアプリケーション クラス)、GCMIntentService->onUnregistered からトークンを取得できるようにします。
2 番の方が良いと思いますが、それが最良の選択かどうかはわかりません。それを解決するためのより良い方法はありますか?