Articles of многопоточный

Handler.post (runnable) не всегда выполняет метод run в android

Я создал экземпляр Handler в основном потоке ui (mUIHandler) и из рабочего потока (другого потока), когда я пытаюсь выполнить метод run runable, метод run выполняется почти 9 из 10 раз, но есть 1 раз, когда он не выполняется. MUIHandler.post (uiRunnable) -> не всегда ли гарантирует выполнение метода запуска, присутствующего в runnable? Я даже добавил методы […]

Пробуждение спальной нити – прерывание () против «расщепления» сна на несколько сон

Это требование появилось в моем приложении для Android, но оно применимо к Java в целом. Мое приложение «делает что-то» каждые несколько секунд. Я реализовал это следующим образом (только соответствующие фрагменты – не полный код): Snippet1: public class PeriodicTask { private boolean running = true; private int interval = 5; public void startTask(){ while (running){ doSomething(); […]

Android wait () не работает

Это мой первый вопрос, поэтому, пожалуйста, простите меня, если я не подчиняюсь ни одному из правил форума. Мне нужно, чтобы моя программа ждала 3 секунды, а затем изменила вид содержимого Мой код: setContentView(R.layout.logout); new Thread(new Runnable() { @Override public void run(){ try { synchronized(this){ wait(3000); } } catch(InterruptedException ex){ } } }).start(); setContentView(R.layout.main); Программа работает […]

Контекст внутри Runnable

Я пытаюсь воспроизвести звук от R.raw. Внутри Thread / Runnable Но я не могу заставить это работать. New Runnable () { Public void run () { // это дает мне исключение NullPointerException, потому что getBaseContext имеет значение null MediaPlayer mp = MediaPlayer.create (getBaseContext (), R.raw.soundfile); While (true) { если что-то) Играть что-нибудь } } Как […]

Handler.sendMessageDelayed (msg, delay) работает неправильно

Я определил всплывающее окно, которое будет отображаться во время загрузки. Но в зависимости от интернет-соединения может потребоваться только 600 мс для загрузки, а иногда и 5000 мс. Таким образом, я определил, что экран заставки, по крайней мере, показан 3000 мс, чтобы пользователь не был раздражен экраном с флексией. Я определяю начало заставки следующим образом: private […]

Android: ошибки IO файла

Проблема: на android 4.x я получаю странные ошибки при загрузке изображений: 07-23 10:31:05.961: E/XXX(32294): libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) 07-23 10:31:05.961: E/XXX(32294): open failed: ENOENT (No such file or directory) и иногда: 07-23 10:31:06.133: W/System.err(32294): java.io.IOException: open failed: ENOENT (No such file or directory) 07-23 10:31:06.133: W/System.err(32294): at java.io.File.createNewFile(File.java:940) 07-23 10:31:06.133: […]

@ Синглтон в кинжале 2 потокобезопасен?

Я пытаюсь переместить все в своем приложении далеко от синглтонов, потому что мне стало известно, что это плохая практика программирования, и я сказал, что я занимаюсь внедрением инъекции зависимости Dagger 2. И мне интересно, когда вы делаете @Singleton в кинжале 2, этот поток синхронизирован? Если нет, то как я могу его синхронизировать, поэтому я не […]

Можно ли сохранить ссылку на поток в одноэлементном режиме?

Позвольте мне дать вам сценарий. Скажем, что моя первая активность, которая загружается, также создает поток, который будет работать бесконечно в фоновом режиме. Теперь, если я перейду к другому Управлению, я предполагаю, что поток, который я изначально создал в основном действии, будет продолжать работать. Итак, теперь к моему основному вопросу – чтобы управлять этим фоновым потоком […]

Что происходит с этим потоком, который запускается в конце после его завершения?

У меня есть этот поток, который загружает несколько изображений с сервера. Поэтому, как только он загружает изображения, я вызываю обработчик и продолжаю обновлять пользовательский интерфейс. Так как stop () для потока устарел, я не могу его использовать. У меня здесь два вопроса. Что происходит с этим потоком в конце? (Значит, после вызова метода обработчика, что […]

Тесты устройств Android с несколькими потоками

У меня проблема с модульными тестами в Android. Мой объект MyObject имеет метод start() следующим образом: public void start() { final Handler onStartHandler = new Handler(); new Thread() { @Override public void run() { super.run(); onStartHandler.post(new Runnable() { @Override public void run() { mIsRunning = true; onStart(); } }); } }.start(); } И я хочу […]