Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 390
1

Вынос AsyncTask в отдельное активити

20.08.2014, 21:00. Просмотров 580. Ответов 3
Метки нет (Все метки)

Добрый день,
Никак не найду ответа вот на какой вопрос - можно ли запустить AsyncTask, которому не нужно после завершения обращаться к UI. Он заносит данные в таблицу базу данных. После запуска процесса требуется перейти в новую активити. Из первой, стартовой активити хотелось бы выйти с ее завершением. Как сделать, чтобы фоновый процесс остался жить? Или активити завершать после окончания этого фонового процесса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2014, 21:00
Ответы с готовыми решениями:

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити
Сделал меню в виде ListView. При клике на меню запускаются активити. На...

Как вызвать метод в активити классе из обычного не активити класса?
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в...

Отображение активити поверх другого активити
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по...

Изменение параметров активити из другого активити
Как сделать так чтобы из первого активити поменять final ImageView...

Вызов новой активити не из класса активити
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4)...

3
waycomm
2 / 2 / 1
Регистрация: 20.07.2014
Сообщений: 18
20.08.2014, 23:13 2
код в doInBackground выполняется в новом потоке, который остановится либо после принудительного завершения, либо после того, как выполнит всю работу. Закрыв Activity поток продолжит работу
1
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 390
21.08.2014, 00:04  [ТС] 3
Увы, но проблема осталась. В фоновом процессе идет запись в базу данных результатов обработки. После закрытия активити, где был запущен фоновый процесс, получаю вылет с сообщением
Java
1
Caused by: java.lang.IllegalStateException: database not open
Причем, даже в случае просто перехода на новое акттивити без финиша предыдущего получаю это же сообщение.
К базе данных подключаюсь не в фоновом процессе, а в активити. Может быть в этом ошибка?
Пробовал подключить базу в onPreExecute(), но что-то запутался с конструктором
0
waycomm
2 / 2 / 1
Регистрация: 20.07.2014
Сообщений: 18
21.08.2014, 00:53 4
Ну если, например, при скрытии этой Activity разрывается соединение с базой, то конечно будет исключение. И работать с БД можно(даже нужно) в отдельном потоке. Так что прям в методе doInBackgroung можно подключиться к БД и там же, по окончанию работы, закрывать соединение.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 00:53

AsyncTask и get()
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный...

AsyncTask
Использую AsyncTasc class MyT extends AsyncTask<Void, Void, Void> { ...

AsyncTask
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru