2014-12-21 3 views
-1

< резюме >Получение результата деятельности от класса неактивности

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

</резюме >

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

В идеале, я хотел бы иметь вызов класса неактивного сеанса startActivityForResult, но я не уверен, что это возможно. Я видел различные вопросы о том, как это можно сделать:

How to get the result from OnActivityResult inside another class?(outside of the activity

use startActivityForResult from non-activity

Но все они кажутся немного Hacky. Я также видел это, что свидетельствует о том, что обойдя контексты не лучшая идея, так или иначе:

http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

Другой вариант, чтобы сохранить имя пользователя и пароль для sharedpreferences и получить его в другом классе, но потом Я должен был бы кое-что выяснить, когда это было спасено, и все это, кажется, становится довольно грязным.

Другой вариант - сделать сеанс не отображаемой активностью. Похоже на большие накладные расходы.

Мой проект все еще находится в стадии планирования, поэтому я после наилучшей практики. Каков самый элегантный способ сделать это?

+0

Пожалуйста, напишите в пункт. Кажется очень описательным, никто не будет читать всю эту дерьмо !!!! –

+0

Проголосовать за слишком много информации представляется довольно резким: вы гарантировали, что никто никогда не прочитает его сейчас, указав отрицательные оценки. – spookypeanut

+0

Мой дорогой друг, я не ответил на ваш вопрос, я вообще никогда не ставил вопрос о том, что такое когда-либо вопрос, если мне не нравится, тогда я ставлю один комментарий, как я разместил здесь. Так что мой дорогой друг, я не остановил ваш вопрос. –

ответ

0

Я бы использовал шину событий (например, Otto, GreenRobot) для передачи результата от активности к неактивности.

+0

Спасибо за предложение, я исследую их. Моя первоначальная мысль заключается в том, что они являются еще более значительными накладными расходами, чем при выполнении моей сессии активности! Я не могу предвидеть другой момент в моем приложении, когда мне может понадобиться шина событий. – spookypeanut