我有一个Android应用,用户会收到有关他们在网站上设置的一些提醒和事件的推送通知。
应用。用户可以看到他们的提醒(在网站上设置),但首先要求他们登录。
App通过HTTP
Web服务与服务器交换数据。
由于我有推送通知功能,我需要注册应用并获取registration_id
并将其与user_id
一起保存在我的服务器中。
我的问题是 - 我应该何时获得注册ID?我希望LoginActivity
成为用户的第一个屏幕。
我尝试在用户registration_id
成功时获取log in
并将其与user_id
一起发送回我的服务器,希望finish()
- LoginActivity
}无法取消AsyncTask
(将registration_id
发送到服务器)。
你觉得怎么样更好? - 考虑可能存在用户可能已登录但仍需要获取新registration_id
的情况。
答案 0 :(得分:1)
我认为GCM的注册应该与登录时间无关,因为如果用户注销而另一个用户登录,则注册ID不会更改,因此您不必执行新的GCM注册
首次启动应用时(或者在安装新版本后首次启动应用时),您应该致电GoogleCloudMessaging.register
,并保留您在SharedPreferences中获得的注册ID。
然后,当用户成功登录时,您可以向服务器发送用户ID和注册ID,并将这两者关联到您的数据库中。
当用户注销时,向您的服务器发送一个请求,该请求将删除用户与注册ID的关联。
如果您在用户已登录时获得新的注册ID(例如,在安装新版本后),您可以在从GCM获取新注册ID时发送带有登录用户ID的注册ID 。