2012-01-24 1 views
0

Im работает с Android 2.1, RoboGuice 1.1 и Guice 2.0 (без aop).
Мое приложение имеет фоновый поток, который запускается в onCreate способе Activity, который подключается к серверу и может понадобиться пользователю предоставить учетные данные для входа в систему.Android - Как реализовать логин Login для фонового потока?

Сначала я нашел PopupWindow в API, но я прочитайте in this post, что он не должен использоваться для этого.

Так что я попытался привнести свой Activity в мой фоновый поток и открыть в Runnable передается Activity.runOnUIThread(Runnable r) в Dialog, но, к сожалению, при введении его в мой фоновый поток roboguice создает новый экземпляр моей деятельности.

Теперь я предполагаю, что правильный способ внедрения Login-Dialog состоял бы в отправке Intent в мою деятельность и покажите Dialog. Кроме того, я предполагаю, что Activity должен отправить Intent (содержащий учетные данные) обратно в фоновый поток.
Правильно это или есть более элегантный способ сделать это?

В this post Я нашел, как зарегистрировать приемник для Intent. Но на каком Activity экземпляр я должен позвонить registerReceiver в фоновом режиме?

С наилучшими пожеланиями

+0

Что вы подразумеваете под «пытались ввести myActivity в мою фоновую тему»? Это терминология roboguice? –

+0

Моя фоновая нить создана RoboGuice, так как это просто POJO. Внутри этого класса есть поле '@Inject private MyActivity mainActivity;', которое также устанавливается RoboGuice. –

+0

Если 'runOnUiThread' не вариант, то я думаю, что вам нужно не намерение, а обработчик. –

ответ

0

Я хотел бы предложить, чтобы создать внутренний класс, в деятельности, которая использует RoboAsyncTask и в основном имеет доступ к деятельности. Это хорошо работает для меня. Если вам нужно иметь возможность входа в систему из разных действий, вы делаете его классом верхнего уровня и передаете экземпляр фрагмента или активности в конструктор задачи async и делаете обновления ui в onSuccess.

Смежные вопросы