Azure禁用推送通知android

时间:2015-05-22 15:54:44

标签: android azure notifications push

我正在将我的Android应用程序的推送通知系统从Urban Airship切换到Azure。接收通知工作正常,但禁用通知无效。我的设置菜单中有一个按钮,可以切换用户是否收到推送通知。目前按钮调用的方法如下所示:

public static void setPushEnabled( Context context, boolean isEnabled) {
    if( isEnabled ) {
        NotificationsManager.handleNotifications(context, SENDER_ID, MyPushHandler.class);
    } else {
        NotificationsManager.stopHandlingNotifications(context);
    }
}

在调用stopHandlingNotifications后,应用仍然会收到推送通知。然后,如果用户重新打开推送通知,则再次调用handleNotifications,并且用户会收到从服务器发送的每个通知的2个通知。这是NotificationsManager的文档:http://dl.windowsazure.com/androiddocs/com/microsoft/windowsazure/notifications/NotificationsManager.html

我在这里遗漏了什么吗?有没有人知道任何其他方法来禁用Azure推送通知?

1 个答案:

答案 0 :(得分:1)

我缺少的是onUnregistered类中的MyPushHandler处理程序,此代码修复了它:

@Override
public void onUnregistered(Context context, final String gcmRegistrationId) {
    super.onUnregistered(context, gcmRegistrationId);

    new AsyncTask<Void, Void, Void>() {
        protected Void doInBackground(Void... params) {
            try {
                mClient.getPush().unregisterAll(gcmRegistrationId);
                return null;
            }
            catch(Exception e) {

            }
            return null;
        }
    }.execute();
}