2013-12-25 8 views
1

Я использую подкласс AsyncTask для выполнения загрузки и сохранения в базу данных. Когда мое приложение завершает работу, оно отменяет задание с параметром mayInterruptIfRunning равным false, так что существующие записи db завершаются, и база данных не остается в частично недействительном состоянии. Мой вопрос: могу ли я быть уверенным, что Android не будет принудительно останавливать мою задачу БД после этого момента? Мой довод no; как таковой, мне нужно найти способ гарантировать, что моя база данных не останется в состоянии, где записана только часть данных.Будет ли Android прерывать AsyncTask после выхода приложения?

EDIT: С другой стороны, я бы даже не отменил задачу при выходе. Если AsyncTask выполняет работу с базой данных, когда мое приложение остановлено или уничтожено, мне нужен его метод doInBackground для завершения.

ответ

0

Как сказано здесь ... Does an AsyncTask stops when I close the application? ... Нет. Android убьет задачу, если система убивает приложение в случае низкой памяти. В других случаях вам необходимо явно остановить AsyncTask, вызвав .finish() (для действия, выполняющего задачу), или cancel() (для самой AsyncTask).

Надеюсь, это поможет.

+0

Спасибо; извинения за неспособность найти существующий поток. – hunt

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