保存GCM注册和登录用户

时间:2014-08-08 19:25:55

标签: android architecture android-asynctask authorization google-cloud-messaging

我有一个Android应用,用户会收到有关他们在网站上设置的一些提醒和事件的推送通知。

应用。用户可以看到他们的提醒(在网站上设置),但首先要求他们登录。

App通过HTTP Web服务与服务器交换数据。

由于我有推送通知功能,我需要注册应用并获取registration_id并将其与user_id一起保存在我的服务器中。

我的问题是 - 我应该何时获得注册ID?我希望LoginActivity成为用户的第一个屏幕。

我尝试在用户registration_id成功时获取log in并将其与user_id一起发送回我的服务器,希望finish() - LoginActivity }无法取消AsyncTask(将registration_id发送到服务器)。

你觉得怎么样更好? - 考虑可能存在用户可能已登录但仍需要获取新registration_id的情况。

1 个答案:

答案 0 :(得分:1)

我认为GCM的注册应该与登录时间无关,因为如果用户注销而另一个用户登录,则注册ID不会更改,因此您不必执行新的GCM注册

首次启动应用时(或者在安装新版本后首次启动应用时),您应该致电GoogleCloudMessaging.register,并保留您在SharedPreferences中获得的注册ID。

然后,当用户成功登录时,您可以向服务器发送用户ID和注册ID,并将这两者关联到您的数据库中。

当用户注销时,向您的服务器发送一个请求,该请求将删除用户与注册ID的关联。

如果您在用户已登录时获得新的注册ID(例如,在安装新版本后),您可以在从GCM获取新注册ID时发送带有登录用户ID的注册ID 。