AsyncTask удаляет элементы массива - PullRequest
0 голосов
/ 21 сентября 2019

Я не понимаю, почему мой ArrayList цитат удаляет все элементы после передачи параметров в AsyncTask.А почему в logcat размер ArrayList не равен 0?Перед дебаггером AsyncTask показывается, что размер не равен нулю.Я вижу созданную мной цитату.

Вот код AsyncTask:

 private class InsertAsyncTask(private val bookDao: BookDao) : AsyncTask<Book, Void, Void>() {
        override fun doInBackground(vararg books: Book?): Void? {
            Log.i("Book", "inside AsyncTask " + (books[0]?.quotes?.size))
            bookDao.insert(books[0])
            return null
        }
    }

У меня в logcat:

I/Book: Book created
I/Book: insert Book before Async 2
I/Book: inside AsyncTask 2
I/Book: Book created

Но в отладчике я вижучто books [0] ?. цитаты? .size равно 0.

Book.java:


@Entity(tableName = "book_table")
@TypeConverters({Converters.class})
public class Book implements Serializable {

    @PrimaryKey (autoGenerate = true)
    private int id;
    private String title;
    private String author;
    private ArrayList<Quote> quotes = new ArrayList<>();;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;

        Log.i("Book", "Book created");
    }
...
}

quote.java:


public class Quote {
    private String text;
    private String author;

    public Quote(String text, String author) {
        this.text = text;
        this.author = author;
    }
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...