Android 在共享首选项GCM上存储注册ID
我正在尝试将Android 在共享首选项GCM上存储注册ID,android,google-cloud-messaging,Android,Google Cloud Messaging,我正在尝试将GCM集成到我的应用程序中。我在很多地方读到,在onRegistered()中,我们应该将regId存储在共享首选项中。谁都知道,为什么需要在共享首选项上存储ID。我看到了gcmregistar.java代码,它在内部执行这个机制。那么为什么需要手动将ID存储在共享首选项中。这是一种设计选择。您可能希望将其存储在SharedReferences、文件或SQLite数据库中。这实际上取决于应用程序以及您试图用它完成的任务 至于为什么gcmregistar.java示例将其存储在Shar
GCM
集成到我的应用程序中。我在很多地方读到,在onRegistered()
中,我们应该将regId
存储在共享首选项中。谁都知道,为什么需要在共享首选项上存储ID。我看到了gcmregistar.java
代码,它在内部执行这个机制。那么为什么需要手动将ID存储在共享首选项中。这是一种设计选择。您可能希望将其存储在SharedReferences
、文件或SQLite数据库中。这实际上取决于应用程序以及您试图用它完成的任务
至于为什么
gcmregistar.java
示例将其存储在SharedReferences
中,我认为已经完成了,因为在更新应用程序时需要使本地存储的设备ID无效/删除,这可以通过删除保存在设备上的原始数据轻松完成。与通过rmfile()
查询数据库或删除文件相比,查询数据库更简单,节省资源(所需代码不超过3-4行)。不要把它复杂化。
由于您的设备已向GSM注册,因此不会自动收到通知。
您必须向需要您的注册ID的第三方服务器注册您的设备
由于id存储在pref中,它不会一次又一次地注册设备 我认为您必须自己注册才能在将来使用它,例如,与指定您的注册号的推送服务器交谈。此方法用于不每次注册设备
- 使用SharedReferences保存registrationId,或将其保存到数据库或文件系统等
- 不要每次都保存注册id和注册设备。然而,这不是一个好的设计选择,因为当应用程序启动时,它需要一次迭代(从google获取注册id)
您不需要将其保存在SharedReference中
final String regId = GCMRegistrar.getRegistrationId(getApplicationContext());
if (regId.equals("")) {
GCMRegistrar.register(this,SENDER_ID);
} else {
//Already registered
}
如果注册id为空,您可以进行注册。谢谢。.这是我的疑问。。我正在使用GCM.jar。所以我想我不必担心这个。任何人都可以看到这个。不要用它。GCMRegistar已弃用。实际上,您应该将其保存在sharedPrefs中。看看这里的指南有那么简单吗?没有别的事可做吗?