Как исправить Couchbase ForestDB «Дескриптор файла занят» при удалении представления?

#java #android #couchbase-lite

#java #Android #couchbase-lite

Вопрос:

При удалении из couchbase экран зависает. Я удаляю вот так

 resetViews1(db)
resetViews2(db)
resetViews3(db)
resetViews4(db)
resetViews5(db)
resetViews6(db)
resetViews7(db)
resetViews8(db)
resetViews9(db)
  

Где вызывается каждый метод resetViews

 database.getView(view_id).delete()
  

Я точно определил, что замораживание происходит из метода resetViews7. Проверка logcat показывает

 `com.couchbase.cbforest.ForestException: file handle is busy'.
  

Я попытался удалить 7-й вызов, и если он удален, экран не зависает. Не уверен, почему это вызывает зависание экрана.

Комментарии:

1. Что это за версия Couchbase Lite?

2. Я использую версию 1.4.1

3. Экран, вероятно, зависает, потому что вы вызываете операцию, которая потенциально может блокироваться в потоке пользовательского интерфейса.

4. @borrrden Я смог решить эту проблему, добавив эту конкретную операцию в вызов Rx.