Вы не дали много контекста о том, когда этот код запускается, но я все равно укушу ...
Да, это действительно риск ANR.Это также подвергает риску другие проблемы жизненного цикла.Поскольку setListAdapter()
должен вызываться раньше, чем другие обычные вещи, которые вы обычно делаете в onCreate()
, вы, вероятно, захотите разгрузить доступ к базе данных в отдельный поток (например, AsyncTask), который может вызываться / кэшироваться / управляться по мере необходимости.AsyncTask предоставляет вам обратный вызов на основе пользовательского интерфейса до начала потока и обратный вызов на основе пользовательского интерфейса, когда поток заканчивается.ListAdapter может быть создан и назначен без каких-либо ссылок на Курсор (и я бы посоветовал вам исправить это как можно скорее ... По-видимому, нет веской причины, по которой вы используете настраиваемый адаптер списка, вам следует управлятьвместо этого ваш доступ к базе данных лучше).
Управление этой задачей с помощью разрыва деятельности и восстановления (подумайте об изменении ориентации ...) - это совершенно другой шарик воска, который был покрыт до тошноты на SO.