2

эй, им новый для разработки Android и пытается сделать мое первое приложение.как всплывать и запрашивать вход пользователя на андроид после получения широковещательной передачи

Что я пытаюсь реализовать, это функция, которую я видел в Handcent SMS: всплывающее уведомление.

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

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

Как бы это осуществить? Могу ли я сделать свою «плавающую» активность и использовать startActivityForResult? это должно быть уволено изнутри службы, так как приемники радиопередач, как предполагается, делают тяжелый подъем?

или я могу использовать NotificationManager или что-то в этом роде.

ответ

1

Вы должны иметь активность (макет + события и т.д.), а также для того, чтобы быть «плавающим», необходимо установить это тема для диалога, это может быть сделано в файле манифеста, где вы определяете вашу деятельность

Что-то вроде

<activity android:name=".utils.TextEntryActivity" 
     android:label="Type in the value" android:theme="@android:style/Theme.Dialog" /> 

Для запуска другой деятельности от BroadcastReceiver вы можете использовать переданную ContextonReceive в событии.

context.startActivityForResult(...) 
+0

хорошо, звучит хорошо. Где бы я реализовал onActivityResult()? – jwheels

+0

В контексте. Возможно, вы должны создать частный класс активности внутри трансляции и использовать это. – Pentium10

+0

Pentium, я пытаюсь реализовать ваше решение, однако, добавив startActivity() в конец моего onReceive() Я создал новую активность Floater, которая на данный момент просто имеет кнопку «ОК». Ее вступление в манифесте: <активность андроид: имя = "Поплавок" андроид: тема = "@ андроид: стиль/Theme.Dialog" андроид: метка = "Введите сейчас"> код в конец моих приемников BroadCast onReceive(): // --- отображение плавающего действия Intent i = новое намерение (контекст, Floater.class); context.startActivity (i); Кажется, ничего не делать, когда текст получен. – jwheels