无法从 Android 台设备订阅 Parse 中的频道

Unable to subscribe channel in Parse from Android device

我正在开发一个 Android 应用程序并使用 Parse 进行推送通知。目前我在注册新设备时遇到问题。我使用下面的代码在 Parse 服务器上的特定频道上订阅了我的 Android phone。

final String channel = "myapp_" + userId;
ParsePush.subscribeInBackground(channel, new SaveCallback() {
    @Override
    public void done(ParseException e) {
        if (e != null) {
            e.printStackTrace();
            ParsePush.subscribeInBackground(channel, new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    Log.e("Subscribe", e == null ? "Success" : "Failure");
                }
            });
        } else {
            Log.e("Subscribe", "Success");
        }
    }
});

我有一个奇怪的问题:
在将应用程序安装到 phone 后,设备可以第一次注册到 Parse(我的设备已经成功订阅了一个频道)但是 GCM 没有 return 设备令牌。即使我等了很长时间,也没有什么好事发生。除非我退出并重新打开应用程序,否则 GCM returns 设备令牌。我不知道它们之间的区别在哪里:第一次使用应用程序与重新打开应用程序。 有没有人有这个问题?你能给我一些解决这个问题的建议吗?

我找到了原因:Parse 注册必须在基 Application class 的 onCreate 操作处进行。然后 deviceToken 将在 Parse 服务器上正常检索。