Как отменить регистрацию в клиенте 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, если мы не можем подключиться к серверу для отмены регистрации.