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

Совместное использование ресурсов между контекстом OpenGL на Android

Я пытаюсь использовать несколько контекстов EGL для загрузки текстур вне моего основного потока. Я получаю сообщение EGL_BAD_CONTEXT после вызова eglCreateContext . Внутри моего android.opengl.Renderer public void onSurfaceCreated (javax.microedition.khronos.opengles.GL10 gl, EGLConfig config) { // … EGLContext sharedContext = egl.getCurrentContext(); EGLDisplay display = eglGetCurrentDisplay(); eglCreateContext(display, config, sharedContext, new int[] { EGL_CONTEXT_CLIENT_VERSION, 2 } ); } EGL_BAD_CONTEXT привел […]

Разделять контекст и текстуры GLES20 между разными GLSurfaceViews?

Можно ли разделить контекст GLES20 между различными GLSurfaceViews (в пределах одного действия)? В качестве альтернативы, как можно разделить набор текстур между разными GLSurfaceViews? В iOS, если вы хотите сохранить память и повторно использовать (большие) текстуры в разных UIView, поддерживаемых CAEAGLLayer, вы можете передать объект EAGLContext между ними или использовать разные EAGLContexts, которые имеют общий объект […]

Android Webview loadUrl не работает при выходе из рабочего потока

Я разрабатываю приложение, которое содержит веб-представление. В определенное время во время приложения он вызывает вызов в Webview loadUrl. Иногда вызов будет поступать непосредственно из события в потоке пользовательского интерфейса, а в других случаях он происходит из события в фоновом рабочем потоке. Когда он возникает из фонового потока, я вызываю runOnUIThead (), чтобы убедиться, что фактический […]

Android IllegalArgumentException lockCanvas ()

Я боролся с этим исключением, и я огляделся, но мне нечем помочь. Вот код package com.example.surfacetest; import android.app.Activity; import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.Surface.OutOfResourcesException; import android.view.SurfaceHolder; import android.view.SurfaceView; public class BoardSurfaceActivity extends Activity { /** Called when the activity is first created. */ private static […]

Сокеты, потоки и службы в android, как заставить их работать вместе?

Я столкнулся с проблемой с потоками и розетками, которые я не могу понять, если кто-то может мне помочь, я бы очень признателен. Есть факты : У меня есть класс обслуживания NetworkService, внутри этого класса у меня есть атрибут Socket. Я бы хотел, чтобы он находился в состоянии подключения на весь жизненный цикл службы. Чтобы подключить […]

Запуск длительной задачи на glThread без блокировки потока пользовательского интерфейса на Android

Мне нужно выполнить много инициализации, прежде чем я смогу отобразить что-либо в своем GLSurfaceView Тезисы должны быть выполнены в потоке OpenGL. Однако это зависает мой основной поток на время инициализации. Вот мой код: @Override protected void onStart() { super.onStart(); FrameLayout renderingLayout = (FrameLayout) findViewById(R.id.movie_rendering_layout); if (renderingLayout != null && mGLView == null) { mGLView = […]

Режим Nexus 5 переходит в режим ожидания.

У меня странное поведение на Nexus 5 при входе и выходе в спящий режим. Он убивает и перезапускает приложение по-настоящему странно. Я покажу вам журнал: Переход в спящий режим (нажатие кнопки питания) 17.005: E / MotherActivity (28940): onPause 17.025: E / MotherActivity (28940): onStop называется 17.315: E / MotherActivity (28940): onDestroy называется 17.365: E / […]

ContentProvider Резьбонарезной

Просто любопытно. getContentResolver().query(…) Я знаю, что Loaders запускают запросы в фоновом потоке. Это также относится к вставкам, обновлениям и удалениям? Должен ли я создавать AsyncTasks, Threads и т. Д. Для этих вызовов? Большие обновления могут блокировать основной поток моего приложения. getContentResolver().insert(…) Благодаря!

Многопоточность в Android

Я пытаюсь многопользовательский код OpenCV4Android. Я разделяю изображение 432×432 в 9 сегментов 144×144 и передаю каждый в другой поток: Thread[] threads = new Thread[9]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { threads[3*i+j] = new Thread(new MyThread(image.rowRange(144*i, 144*(i+1)).colRange(144*j, 144*(j+1)))); threads[3*i+j].start(); } } for […]

Выполняется ли TimerTask в новом потоке

Могу ли я считать, что код в run будет выполнен в новом AsyncTask или я должен использовать AsyncTask ? Timer myTimer = new Timer(); // Создаем таймер final Handler uiHandler = new Handler(); myTimer.schedule(new TimerTask() { // Определяем задачу @Override public void run() { uiHandler.post(new Runnable() { @Override public void run() { } }); } […]