Windows Phone 8 push-уведомление push-канал всегда создает новый канал

Я хотел проверить правильность моей реализации push-уведомлений.

Каждый раз, когда я открываю свое приложение (на самом деле я регистрирую push-канал только на определенной странице, поэтому каждый раз, когда я возвращаюсь с этой страницы назад), создается новый URI push-канала, который я сохраняю в своей базе данных мобильных сервисов для отправки Push-уведомления для. Мне это не кажется правильным, так как каждый раз, когда приложение / страница открывается, генерируется новый URI push-канала, и поэтому список URI канала просто растет и увеличивается для каждого устройства, которое использует мое приложение. Я бы предположил, что вы создаете push-канал, сохраняете канал URI и нажимаете на него по мере необходимости. Я отмечу здесь, что я использую необработанные push-уведомления.

Я понимаю, что push-каналы истекают очень часто, но для меня это происходит каждый раз, когда я возвращаюсь из приложения / страницы, и поэтому, когда вызывается onNavigateTo, я нахожу push-канал, который существует, и всегда создается новый URI канала. Это верно?

Мой код выглядит следующим образом:

защищенное переопределение void OnNavigatedTo (NavigationEventArgs e) {registerPushChannel (); }

private void registerPushChannel()
    {
        // The name of our push channel.
        string channelName = "RawSampleChannel";

        // Try to find the push channel.
        pushChannel = HttpNotificationChannel.Find(channelName);

        // If the channel was not found, then create a new connection to the push service.
        if (pushChannel == null)
        {
            pushChannel = new HttpNotificationChannel(channelName);

            // Register for all the events before attempting to open the channel.
            pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
            pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);
            pushChannel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(PushChannel_HttpNotificationReceived);

            pushChannel.Open();

        }
        else
        {
            // The channel was already open, so just register for all the events.
            pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
            pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);
            pushChannel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(PushChannel_HttpNotificationReceived);

            // code which passes the new channel URI back to my web service               

        }

    }

protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        pushChannel.Close();
    }

Таким образом, чтобы уточнить, приложение открыто и push-канал зарегистрирован, и канал uri сохранен в моем веб-сервисе. Затем веб-служба отправляет уведомления на канал URI. Когда я выхожу из приложения или страницы и возвращаюсь к нему, канал push-уведомлений обнаруживается, но создается новый канал URI, который я снова сохраняю в своем веб-сервисе. Моя таблица каналов фактически продолжает расти и расти.

Так это то, как он должен работать с постоянно генерируемыми URI новых каналов? Это вроде не имеет смысла для меня. Я не уверен, как работают уведомления toast и tile, но я бы предположил, что URI канала должен быть статическим, когда приложение закрывается, чтобы продолжать получать уведомления, пока приложение закрыто, но, возможно, это может быть функциональность bindtotoast и bindtotile и т. Д. то, что я делаю, правильно, потому что это связано с необработанными уведомлениями.

Ответы на вопрос(1)

Ваш ответ на вопрос