Как отменить регистрацию в клиенте Google Cloud Messaging в приложении для Android

Я разрабатываю приложение для Android в среде xamarin с помощью GCM (Google Cloud Messaging) и центра уведомлений Azure.

Проблема в том, что я не знаю, как отписаться от предыдущих тегов. Даже когда я снова удаляю установку - приложение продолжает получать уведомления для каждого тега, который я ранее указывал.

Мне нужно реализовать функцию:

protected override void OnUnRegistered(Context context, string registrationId)
{
     throw new NotImplementedException();
}

2 ответа

Я думаю, что вам нужно отменить регистрацию в Центре уведомлений Azure.

protected override void OnUnRegistered(Context context, string registrationId)
{
    if (hub != null)
        hub.Unregister();
}

где hub та же NotificationHub который вы использовали в OnRegistered

Использование unregister() метод GoogleCloudMessaging прекратить получать сообщение GCM.

protected override void OnUnRegistered(Context context, string registrationId){
     //Run on background
     GoogleCloudMessaging.getInstance(context).unregister();
}

публичный аннулировать регистрацию ()

Отмените регистрацию приложения. Вызов unregister () останавливает любые сообщения с сервера. Это блокирующий вызов - вы не должны вызывать его из потока пользовательского интерфейса. Вы должны редко (если когда-либо) вызывать этот метод. Это не только дорого с точки зрения ресурсов, но и делает недействительным ваш регистрационный идентификатор, который никогда не должен меняться без необходимости. Лучше всего, чтобы ваш сервер прекратил отправлять сообщения. Отмените регистрацию только в том случае, если вы хотите, чтобы ваше приложение прекратило использовать GCM навсегда или у вас есть веская причина для повторной регистрации вашего регистрационного ID. Выдает IOException, если мы не можем подключиться к серверу для отмены регистрации.

Другие вопросы по тегам