Я разрабатываю многопоточное приложение, которое использует как потоки, так и задачи Async для выполнения кода на нескольких потоках.Ошибка Android на многоядерных процессорах
У меня есть AsyncTask, который добавляет строку в базу данных и затем отправляет запрос API. После получения ответа на запрос API он обновляет строку в базе данных. Объект адаптера базы данных передается в AsyncTask из потока пользовательского интерфейса.
К сожалению, AsyncTask не работает на многоядерных устройствах (таких как Asus Transformer). Исключение нулевого указателя возникает, когда я пытаюсь добавить строку в базу данных в первый раз.
Я не знаю, почему это происходит, но это может быть связано с тем, что говорится в docs в разделе «Наблюдение за памятью».
Пожалуйста, разместите код, где появляется ошибка, иначе нам не будет известно, что происходит. – Tudor
Если вы не делаете что-то странное, не должно быть разницы в многоядерных устройствах. Вы просто имеете дело с потоками, а vm имеет дело с ядрами. Скорее всего, ваш тестовый телефон просто быстро, и вы попадаете в состояние гонки, которое вы не встречаете на более медленных телефонах. –
Если это помогает сузить проблему, у меня есть многоядерный телефон и использовать AsyncTask для запуска нескольких параллельных потоков в моем приложении, но у вас нет проблем. – Pedantic