Можно ли вызвать AlertDialog из моего приложения в Android? - PullRequest
2 голосов
/ 07 мая 2011

У меня есть служба, которая отслеживает состояние, и когда возникает определенное состояние, мне нужно уведомить пользователя (независимо от того, в какой активности он находится, или, если уж на то пошло, даже используют ли они приложение).

В настоящее время я отправляю тост из моего приложения (который, как ни странно, только иногда работает на xoom (не проверял на других устройствах). Однако, когда я пытаюсь запустить AlertDialog из приложения, приложение вылетает.

Итак ... Тревога просыпается и вызывает ожидающее намерение, которое запускает Сервис, который проверяет некоторые вещи, и если условия являются правильными, вызывает приложение для отображения уведомления. Я знаю, что могу настроить широковещательные приемники в своем приложении, но суть в том, чтобы пользователь фактически нажимал «ОК» на уведомление, даже если в данный момент его нет в приложении, к тому же, это сложно установить прослушивать широковещательные слушатели в каждом действии, поскольку этот процесс не привязан ни к какому конкретному действию.

Это незаконный маневр? Если нет, что я должен искать в качестве виновника аварии? Есть ли какое-то специальное разрешение, которое я пропускаю?

1 Ответ

1 голос
/ 07 мая 2011

Это незаконный маневр?

Не незаконно, но его можно рассматривать как «враждебное по отношению к пользователю».

Предположим, я нахожусь в сложной ситуации в игре и собираюсь пройти особенно сложный уровень ... и ваш диалог появляется и блокирует мою игру, пока я не нажму "ОК"? Как вы думаете, сколько времени пройдет, прежде чем ваше приложение будет удалено с моего устройства? Довольно чертовски быстро. То, что вы предлагаете, звучит как системное модальное диалоговое окно, которое фактически означает угон устройства.

Можно использовать модальные диалоговые окна в вашем собственном приложении, т. Е. Когда пользователь фактически использует одну из ваших операций, но в других случаях приемлемым подходом является использование уведомлений.

Сказав все это, однако, если вы полны решимости пойти на такой подход, я бы предложил вам использовать действие с темой диалога. Вместо того, чтобы использовать прямой подход к созданию чего-то вроде AlertDialog, просто запустите Activity с намерением.

...