Я пытаюсь создать окно предупреждения, которое появляется только при установленном приложении
Это невозможно. Вы не получаете контроль во время установки.
Мне нужно, чтобы пользователь ввел свой номер телефона, прежде чем ему будет разрешено использовать приложение.
Затем запросите у них значение при первом запуске вашего приложения или, если нужные данные отсутствуют (например, пользователь очистил данные вашего приложения).
В моем методе onCreate () есть диалоговое окно с предупреждением, но если пользователь нажимает за пределами окна предупреждения, оно исчезает.
Он также исчезнет, если они нажмут кнопку НАЗАД.
Я пытался добавить alert.setFinishOnTouchOutside (true), как вы можете видеть, но я получаю ошибку (Добавить приведение к 'Alert')
setFinishOnTouchOutside()
- метод для Activity
. Это не метод для AlertDialog.Builder
.
Что мне нужно сделать, чтобы предотвратить отмену оповещения, если пользователь нажимает за пределами окна?
Звоните setCanceledOnTouchOutside()
на AlertDialog
, построенном на Builder
. Это недоступно на самом Builder
.
Конечно, было бы лучше, если бы вы сначала не использовали AlertDialog
, поскольку предлагаемый вами UX враждебен пользователю.
Пользователь загружает и устанавливает ваше приложение, открывает его, и первое, с чем он сталкивается, это диалоговое окно, которое он может не понять. И ваша цель состоит в том, чтобы они не могли получить в вашем приложении ничего, что могло бы объяснить :
- Какой номер телефона? (дом? работа? мобильный? секс линия?)
- Для чего будет использоваться номер телефона?
- Смогут ли они изменить номер телефона?
- Смогут ли они установить несколько телефонных номеров?
- Почему они должны соблюдать ваш запрос в первую очередь? Что они получают за предоставление вам такой личной информации?
Вместо диалогового окна, если вы обнаружите, в onResume()
, что у вас нет номера телефона, запустите действие, чтобы позволить им предоставить номер. Воспользуйтесь экраном, чтобы немного объяснить, зачем вам нужен номер, и позвольте им обратиться к онлайн-справке, чтобы объяснить дальнейшие вопросы. Даже если они вернутся из этого действия, ваш исходный onResume()
снова сработает, поэтому они не смогут продолжить. Даже лучше UX будет включать их в приложение, но отключать вещи, для которых требуется телефонный номер, точно так же, как вы можете открыть Microsoft Word без необходимости под дулом пистолета загрузить существующий документ Word.