Parse.com推送通知问题。退订无效,仍然收到推送通知。(安卓)

5
我已经制作了一个使用Parse.com推送通知的应用程序。我有一个设置页面,您可以在其中启用/禁用推送通知。设置页面运行良好,它更改了使用的首选项,但是推送通知不会停止。
以下是我订阅/取消订阅的代码:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
            pushNotificationsPreference = sharedPrefs.getBoolean("PUSH_NOTIFICATION_PREFERENCE", true);

            if (pushNotificationsPreference) {
                ParsePush.subscribeInBackground("Android", new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e != null) {
                            Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                        } else {
                            Log.e("com.parse.push", "failed to subscribe for push" + e);
                        }
                    }
                });
            } else {
                ParsePush.unsubscribeInBackground("Android", new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e != null) {
                            Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                        } else {
                            Log.e("com.parse.push", "failed to unsubscribe for push" + e);
                        }
                    }
                });

            }

如果“pushNotificationsPreference”为false,则会调用方法“ParsePush.unsubscribeInBackground(“Android”,new SaveCallback())”,但它不会订阅,我仍然收到通知。
我在Parse.com上注册了“Android”频道。
我有什么遗漏吗?

日志中是否成功取消订阅?另外需要指出的是,您的IF条件设置是相反的。IF(e == null)表示没有错误,您应该反过来。此外,您的首选项很可能不存在,并且默认值为“true”。 - Aashir
1个回答

0

只需添加

if (e == null) {
    ParseInstallation.getCurrentInstallation().saveInBackground();
}

ParsePush.unsubscribeInBackground(...)done() 中添加。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接