Articles of multithreading

Android: несколько потоков, записываемых в базу данных SQLite

В onCreate() моего основного действия я вызываю конструктор моего dbManager, я вызываю открытую функцию, которая создает экземпляр SQLiteOpenHelper и я вызываю на нем getWritableDatabase() . В UIThread я добавляю записи в базу данных и сохраняю эти записи в ArrayList. Два других потока проверяют, что ArrayList делает материал, а не обновляет список и базу данных. Теперь […]

AsyncTask или Handler – какой из них лучше для трудоемкого сетевого взаимодействия и обработки?

Я новичок в разработке Android. В настоящее время я работаю над приложением, которое возьмет запрос от пользователя, отправит запрос на сервер и получит ответ XML в ответ. Затем он обработает xML-ответ с помощью XMLparser, извлечет ответ из ответа XML и отобразит ответ пользователю. Поскольку вся эта обработка занимает некоторое время, я хочу показать пользователю диалог […]

Прерывание потока не работает (Java Android)

Изменить: см. Здесь! У меня есть поток с Runnable, показанный ниже. Проблема в том, что я не могу понять: половину времени, когда я вызываю interrupt() в потоке (чтобы остановить его), он фактически не заканчивается ( InterruptedException не улавливается). private class DataRunnable implements Runnable { @Override public void run() { Log.d(TAG, "DataRunnable started"); while (true) { […]

Поддерживает ли Android поток?

Поддерживает ли Android pthreads? И почему, когда я использую опцию -pthread, я вижу ошибку компоновщика: I686-android-linux / bin / ld: не удается найти -lpthread #include <pthread.h> #include <cxxabi.h> extern "C" int printf (const char *, …); int main() { try { pthread_exit (0); } catch (abi::__forced_unwind &) { printf ("caught forced unwind\n"); throw; } catch […]

Создание сообщения Toast из отдельного раздела

Я пытаюсь отправить сообщение Toast из потока в UIThread при нажатии кнопки. Однако каждый раз, когда я нажимаю кнопку, тост не появляется. Я использую обработчик для этого. Это полный код, если я совершил большую ошибку: package google.map.activity; //imports public class GoogleMapActivity extends MapActivity { int lat = 0; int lng = 0; Location location; MapController […]

Какая практика заключается в том, чтобы сделать http-звонки в android

Поэтому мне нужно сделать пару http-вызовов, которые возвращают ответы JSON, содержащие один или массив объектов json. У меня есть целая часть вызванного и работающего клиентского HTTP-клиента, который возвращает строку с ответом json. Поэтому мой вопрос таков: как лучше всего сделать асинхронные вызовы. В настоящее время я использую async-задачу, которая вызывает метод, который возвращает строку в […]

Отменить ProgressDialog и остановить поток

У меня есть поток, который запускает несколько операций один раз, и я хотел бы остановить его, когда пользователь отменяет ProgressDialog . public void run() { //operation 1 //operation 2 //operation 3 //operation 4 } Этот поток работает только один раз, поэтому я не могу реализовать цикл, чтобы проверить, все ли он должен работать. Вот мой […]

Schedulers.io () не возвращается в основной поток

Я использую RxParse для анализа асинхронной загрузки запроса, но когда я подписываю свои наблюдаемые с помощью subscribeOn (Schedulers.io ()), мой метод onCompleted никогда не вызывается в основном потоке. Вместо этого мой метод onCompleted вызывается внутри пула рабочих потоков. Если я использую функцию наблюдения (AndroidSchedulers.mainThread), все будет работать, но мой onNextMethod также будет вызван в основной […]

Android загружает изображение с сервера и сохраняет на SD-карте без использования BitmapFactory

Я пытаюсь создать приложение, которое используется для загрузки изображения с сервера и отображения его в listview. Проблема, которую я сделал, это утечка памяти и сбоя приложения. Я искал в Android-блоге такую ссылку , это отличная идея, но этого недостаточно, чтобы сделать это с помощью нескольких потоков. Некоторое устройство Android может работать с ним, но какое-то […]

Android: возможно ли, чтобы фоновый поток блокировался до тех пор, пока поток пользовательского интерфейса не завершит работу?

Возможно ли, чтобы фоновый поток помещал сообщение в обработчик основного потока пользовательского интерфейса и блокировал до тех пор, пока это сообщение не будет обслуживаться? Контекст для этого заключается в том, что я хочу, чтобы мой удаленный сервис обслуживал каждую опубликованную операцию из своего основного потока пользовательского интерфейса, а не поток потока, из которого он получил […]