我有一个使用
android的帐户登录/注销的应用程序.我也在使用GCM,所以当用户登录时我注册了设备,如果用户注销我取消注册它.我正面临取消注册的问题.
要从我的服务器取消注册我的设备,我需要帐户的令牌.由于我无法将其传递给GCMIntentService中的onUnregistered方法(或者至少我不知道如何),我尝试使用AccountManager获取它,但此时我的帐户已被删除.我想解决它,我想到了两个选择:
1-首先调用GCMRegistrar.unregister并删除GCMIntentService-> onUnregistered函数中的帐户.此解决方案的问题是用户必须等待取消注册才能完成,并且可能不会.我不能让用户继续操作而不删除帐户.
2-将令牌保存在某处(可能是应用程序类),以便能够从GCMIntentService-> onUnregistered获取它.
我认为数字2更好,但我不知道它是否是最好的选择.有没有更好的方法来解决它?
最佳答案 在IntentService中获取令牌后,您可以使用SharedPreferences保存它:
public void savePrefrences(String key, String value)
{
SharedPreferences prefs = SynergyApplication._context.getSharedPreferences(SynergyApplication._context.getApplicationContext().getPackageName(), 0);
prefs.edit().putString(key, value).commit();
}
然后从您应用中的任何位置读取它:
public String getPrefrences(String key)
{
SharedPreferences prefs = SynergyApplication._context.getSharedPreferences(SynergyApplication._context.getApplicationContext().getPackageName(), 0);
return prefs.getString(key, "");
}