Articles of многопоточности

Обновить текст из потока

В моем методе OnCreate я создал поток, который прослушивает входящее сообщение! In OnCreate() { //Some code myThread = new Thread() { @Override public void run() { receiveMyMessages(); } }; myThread.start(); // Some code related to sending out by pressing button etc. } Then, receiveMyMessage() functions… Public void receiveMyMessage() { //Receive the message and put it […]

Что является более эффективным широковещательным приемником или обработчиком?

Я знаю, что onReceive () приемника Broadcast и handleMessage () обработчика запускают один и тот же поток пользовательского интерфейса. Предположим, я хочу общаться между двумя службами в одном приложении (процессе). Я могу расширить класс вещательного приемника и зарегистрировать событие ИЛИ Обработчик, а затем передать свой экземпляр другой службе, которая будет использоваться для вызовов sendMessage (). […]

Android запускает поток в сервисе каждые X секунд

Я хочу создать поток в службе Android, которая запускается каждые X секунд В настоящее время я использую, но метод postdelayed, похоже, действительно задерживает мое приложение. @Override public int onStartCommand(Intent intent, int flags, int startId){ super.onStartCommand(intent, flags, startId); startRepeatingTask(); return startId; } private final static int INTERVAL = 20000; //20 milliseconds Handler m_handler = new Handler(); […]

Android. Повторно запускайте поток в течение таймера.

Прежде всего, я не мог даже выбрать метод, который я использую, я читаю часами, и кто-то говорит, что использует «Обработчики», кто-то говорит, что использует «Таймер». Вот что я пытаюсь достичь: При настройках существует параметр (флажок), который позволяет / отключает повторяющееся задание. Когда этот флажок установлен, таймер должен начать работать, и поток должен выполняться каждые x […]

Должен ли MediaPlayer работать в отдельном потоке?

Я создаю приложение, которое передает музыку с веб-сервера. Приложение имеет переднюю службу, которая использует MediaPlayer для воспроизведения. Мой код основан на этом примере: http://developer.android.com/guide/topics/media/mediaplayer.html В этом примере ничего не пронизывается, кроме вызова prepareAsync (). Меня смущает то, что когда я читаю о классе службы, я нахожу эту информацию: «Внимание: служба работает в основном потоке своего […]

Синхронизированный метод Java

Рассмотрим этот код: public synchronized void onSignalsTimeout(List<SignalSpec> specs) { if (specs != null && specs.size() > 0) { for (SignalSpec spec : specs) { ParsedCANSignal timeoutedSignal = new ParsedCANSignal(); SignalsProvider.getInstance().setSignal(spec.name, spec.parent.parent.channel, timeoutedSignal); } } } У меня есть простой вопрос: когда Thread 1 вызывает метод onSignalsTimeout, могут ли объекты доступа Thread 2, к которым обращаются […]

Как лучше тестировать код Looper и Handler на Android?

Я использую класс android.os.Handler для выполнения задач на фоне. Когда модуль тестирует их, я вызываю Looper.loop() чтобы тестовый поток Looper.loop() когда поток фоновой задачи выполнит свою задачу. Позже я вызываю Looper.myLooper().quit() (также в тестовом потоке), чтобы позволить тестовому потоку выйти из loop и возобновить логику тестирования. Все отлично и денди, пока я не хочу писать […]

Почему, похоже, для этого синхронизированного блока требуется много времени, чтобы получить блокировку?

Я новичок в многопоточности в java, и у меня есть вопрос, который некоторые могут найти тривиальным. Я должен отлаживать стороннюю часть кода, и мне нужна какая-то основная информация, чтобы знать, где искать проблему, потому что код очень большой. Когда выполняется следующий код: public void method() { long startTime = System.currentTimeMillis(); synchronized (obj) { log( "time:" […]

Андроид устанавливает видимость кнопки по таймеру

У меня есть приложение, которое показывает отказ от ответственности в начале программы. Я хочу, чтобы кнопка оставалась невидимой в течение определенного времени, а затем стала видимой. Я настроил поток, который спит в течение 5 секунд, а затем пытается сделать кнопку видимой. Однако я получаю эту ошибку, когда выполняю свой код: 08-02 21: 34: 07.868: ERROR […]

RunOnUiThread Undefined для класса

Я пытаюсь бросить и предупредить диалог в потоке пользовательского интерфейса из моего фонового потока, но у меня проблемы с runOnUiThread, которые не определены. Я пробовал FindLocation.this.runOnUiThread и runOnUiThread, но оба, похоже, бросают ту же ошибку The method runOnUiThread(new Runnable(){}) is undefined for the type new LocationListener(){} (или …the type FindLocation ). Любые идеи почему? Вот […]