Articles of multithreading

PARTIAL_WAKE_LOCK против SCREEN_DIM_WAKE_LOCK в потоке загрузки

У меня есть служба, которая запускает поток загрузки, который иногда загружает большие файлы. Я понял, что как только телефон заснет, поток загрузки значительно замедлится, а затем остановится. Очевидное средство, вакелок. Поэтому я бы подумал, что было бы неплохо получить partial_wake_lock, просто чтобы процессор обрабатывал загрузку. Это не работает, хотя, такое же поведение, загрузка замедляется, а […]

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

Примечание. Не помещайте этот вопрос как дубликат. Я рассмотрел несколько подобных вопросов, но не смог найти удовлетворительного ответа. Я работаю над приложением, которое использует Sqlite Database. Мы следуем одноэлементному шаблону, который гарантирует, что мы можем создать только один экземпляр нашего вспомогательного класса в нашем приложении. public class CustomSqliteHelper extends SQLiteOpenHelper { public static CustomSqliteHelper getInstance(Context […]

AlertDialog невидим, когда активность возвращается на передний план

Я пишу файл загрузки программы. Когда в этой загрузке я запускаю индикатор выполнения, а затем запускаю поток, чтобы выполнять загрузку. Этот поток отправляет сообщение в поток пользовательского интерфейса, чтобы уведомить, сколько из них было загружено часто. В основном потоке (UI) я обновляю дисплей индикатора выполнения при получении сообщения. Если в ходе загрузки произойдет какая-либо проблема, […]

Android: потоки не работают параллельно

Я пишу игру в Android / OpenGL и пытаюсь отделить мою логику OpenGL (рендеринга) от логики обновления игры, запустив каждый в своем потоке, чтобы повысить производительность. Мне удалось заставить каждого работать в своем потоке, однако, согласно Tracer в DDMS, потоки все еще работают последовательно (мир – это мой поток обновления игры): См. Url, поскольку у […]

IntentService и Threadpool

У меня есть IntentService, который должен действовать как менеджер и создавать задачи в очереди (Runnable), которые передаются в ThreadPool. Я немного смущен жизненным циклом IntentService: function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage(‘en’, ‘ru’, function () {});} Метод protected abstract void onHandleIntent (Intent intent) выполняется уже в отдельном потоке. В onHandleIntent я создам новый экземпляр Runnable […]

Android, создавая простой поток, который будет обновлять мой счетчик секунд

В основном, я пытаюсь запустить счетчик секунд и счетчик уровней. За каждые 10 секунд я хочу уровень ++. Но пока это не реализовано, пока я просто пытаюсь отображать секунды, но я получаю исключения во время выполнения и сбой. Googling Я вижу, что это потому, что я пытаюсь обновить пользовательский интерфейс из моего потока, и это […]

Нужен пример, показывающий, как выполнять асинхронные HTTP-запросы

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

Libgdx использует ScreenUtils асинхронно и не останавливает игровой цикл

Я хочу захватить экран. Libgdx предоставляет некоторые функции, определенные в классе ScreenUtils . Например, final Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h); Моя проблема заключается в том, что для получения этой информации требуется около 1-3 секунд. За это время игровой цикл блокируется, и пользователь будет определять его как задержку. Внутри класса Gdx.gl.glReadPixels используется Gdx.gl.glReadPixels . […]

Как я могу гарантировать, что еще один обработчик Thread не имеет значения null до его вызова?

Моя программа бросила NullPointerException на другой день, когда попыталась использовать обработчик, созданный в другом потоке, для отправки этого потока сообщение. Обработчик, созданный другим потоком, еще не был создан или еще не виден вызывающему потоку, несмотря на то, что вызывающий поток уже вызвал начало в другом потоке. Это происходит очень редко. Почти каждый тестовый прогон не […]

Android MIDI Threading InteruptedException – сообщения Aftertouch

Попытка запуска MIDI в моем приложении для Android. Я следую примеру midisuite для настройки моего приложения, и он отлично работает, за исключением aftertouch. Всякий раз, когда я пытаюсь вызвать aftertouch, я сталкиваюсь с типом исключения InteruptedException . Как предотвратить эту проблему с потоками? Мои знания о многопоточности не самые лучшие, иначе я бы уже понял […]