Используйте объект Handler для обновления элементов пользовательского интерфейса из другого потока.
См. Этот вопрос для примера. Как сделать textView.setText из Thread?
Вы можете просто использовать алгоритм хеширования для защиты идентификатора пользователя (чтобы никто не мог отменить регистрацию всей вашей БД с помощью неприятного цикла).
У вас будет два параметра: userID и hash.
Преимущество состоит в том, что вам не нужно сохранять соответствие между кодом деактивации и идентификатором пользователя.
С точки зрения пользователя, не требовать от пользователя ввести адрес электронной почты для отказа от подписки.