Как получить возвращаемое значение из AsyncTask в Main Activity? - PullRequest
4 голосов
/ 07 октября 2011

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

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Вы пытались реализовать AsyncTask как внутренний класс вашей Деятельности?

1 голос
/ 07 октября 2011

Вы можете иметь некоторый вспомогательный класс, доступный как синглтон (хорошо, синглтон - опасный шаблон но его использование в Android оправдано до тех пор, пока мы не получим инъекцию зависимостей и исправлений usabel) и не передадим результат туда.

Advandatges: - не вмешиваться в намерения / сериализуемость - передать данные или позвонить метиду или сделать что угодно - во всех ваших действиях используется один и тот же экземпляр Singleton Service.

Недостатки: - шаблон синглтона считается опасным

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

Или вы можете пойти еще дальше - зарегистрируйте свою деятельность в качестве слушателя в асинхронной службе и вызовите метод в этой активности, когда будете готовы (примечание: поскольку это не будет поток пользовательского интерфейса, вы не сможете что-либо делать с пользовательским интерфейсом, если только вы используете runOnUiThread ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...