我的客户端/服务器上的设备注册管理存在轻微的推送通知问题.
我遇到的问题是当我卸载应用程序并重新安装它时,应用程序返回一个空字符串,用于注册id(GCMRegistrar.getRegistrationId(this)
),我用我的服务器重新注册设备.问题是我得到了一个新的,不同的注册ID(有时)和两个工作!所以我不知道服务器端如何知道它是否适用于同一设备.我还应该注意,我没有更改应用程序版本.清单的任何更改是否会触发新的注册ID?
在Android方面,我执行以下操作:
/** * Registers this android device with GCM */ private void registerDeviceWithGCM() { GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this); String regId = GCMRegistrar.getRegistrationId(this); if (regId.equals("")) { log.debug("Registering application with GCM"); GCMRegistrar.register(this, ApplicationData.SENDER_ID); } else { log.debug("Already registered: " + regId); deviceRegistrationService.updateServerRegistrationData(this, regId); } }
我在我GCMIntentService.java
做以下事情:
/** * Triggered upon new device registration and updates registration info with the server * * @param context context received from * @param regId device's registration id */ @Override protected void …
notifications android push-notification google-cloud-messaging
我一直在考虑这个问题,我似乎无法找到一个合理的解决方案来解决这个问题.问题陈述很简单 - 编写一个懒惰地对远程数据集进行分页的生成器.为简化起见,理想情况下,我希望我的库用户可以看到:
for (var user of users()) {
console.log(user);
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法让发电机工作.我认为像这样的逻辑可行,但我无法弄清楚如何实现它.
function* users() {
while (canPaginate) {
yield* getNextPageOfUsers() // This will need to return an array of users from an http request
}
}
Run Code Online (Sandbox Code Playgroud)
我确定我在想这里有什么问题,但是我似乎找不到任何使用像这样的生成器的人的例子(大多数人使用静态数据或人们做类似的东西async(function*(){...})
不完全是什么我希望这样做.)这里的重要部分是我希望最终用户能够如上所述使用数据.
-Vince