Из того, что я понял из ваших мелких деталей, я понял, что не рекомендуется передавать пользовательский интерфейс в асинхронную задачу. То, что вы можете сделать, это выполнить фоновую операцию doInBackground()
вашего Async, после завершения операции вернуть обработанные данные, и в onPostExecute()
вы можете обновить представление с переданными данными.
Я думаю, что вам может не хватать информации об Asyncs, так почему бы не посмотреть внимательно на этот пост .
Вы также можете создать интерфейс и передать результат этому интерфейсу после завершения работы. В двух словах, прочитайте пост, чтобы понять, как работают асинхронные вычисления.
править : Похоже, эта проблема была исправлена в SVN 1.8. Раздел по базовому слиянию из книги SVN 1.8 был обновлен, чтобы сказать, что можно повторно использовать функциональную ветвь. Ответ ниже актуален только для более старых версий SVN.
Из раздела о базовом слиянии в книге svn:
В Subversion 1.5 один раз --reintegrate слияние выполняется от ветки к стволу, ветка нет дольше можно использовать для дальнейшей работы. Это не в состоянии правильно поглотить новый багажник изменения, и это не может быть должным образом снова интегрирован в багажник. Для этого причина, если вы хотите продолжить работу над ваша функциональная ветка, мы рекомендуем разрушив его, а затем воссоздав из ствола:
Это все еще имеет место в SVN 1.6 и 1.7.
Эта отличная статья по отражающим слияниям объясняет , почему именно вы не можете или не должны переработать функциональную ветку. Краткое изложение наиболее важных моментов:
Удаление ветки и повторного ветвления функции дешево и позволяет избежать всей этой проблемы.
Все зависит от вашего личного мнения и от количества людей, сливающихся в магистраль.
Если у вас много людей, которые объединяются, то, вероятно, лучше объединить только одну ветвь, как только она будет завершена, а затем удалить ее (вы всегда можете получить к ней доступ, вернувшись к последней ревизии, в которой она существовала). Если вы попытаетесь непрерывно слиться в этой ситуации, вы просто запутаете себя.
Однако, если у вас не так много дочерних веток, и вы используете Subversion 1.5+, вам это может сойти с рук, и это может помочь во избежание конфликтов слияния.
Конечно, если ваша «магистраль» используется как бета-версия / релиз-кандидат / релиз-репозиторий, вам не следует этого делать.
Мы делаем это часто (SVN 1.5 и выше). Вам просто нужно убедиться, что эти изменения не повторяются обратно в ветку.
Для этого просто выполните слияние ряда ревизий из ствола в ветку. Укажите ревизию в стволе, в которой вы выполняли реинтеграцию ветви, и отметьте ее как «Записывать только слияние» из ревизии ствола в ветку.
Как только вы это сделаете, все будет в порядке.
Править
Мысль, которую wcoenen поднимает из статьи о конфликтах, верна. Если вы не синхронизируете изменения ствола с веткой перед выполнением реинтеграции, у вас возникнет проблема конфликта. Мы поддерживаем синхронизацию ветки, и у нас не было проблем с продолжением повторного использования ветки после многократной реинтеграции.
Править 2
Сохранение реинтегрированной ветки в живых
( http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html )
Есть альтернатива разрушению и воссозданию ветви после реинтеграции. Чтобы понять, почему это работает, вам необходимо понять, почему ветвь изначально непригодна для дальнейшего использования после того, как была реинтегрирована.