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

Многопроцессорные поставщики контента синхронизированы по умолчанию

Согласно документации Android : Android: несколько процессов Можно ли создать экземпляр поставщика контента в каждом клиентском процессе – «true», если экземпляры могут выполняться в нескольких процессах, а «false», если нет. Значение по умолчанию неверно". Обычно поставщик контента создается в процессе приложения, которое его определяло. Однако, если для этого флага установлено значение «true», система может создать […]

Реальная разница между AsyncTask и Thread

Я читал документацию на Android ( AsyncTask , Thread ) и учебник по vogella по этому вопросу, но у меня есть сомнения. Например, я хочу отправить сообщение с Android-приложения на сервер. И я хотел бы обработать его ответ. Что я должен использовать? Я видел примеры, когда они создают новый поток для неблочного интерфейса, но таким […]

Android – приостановка всех потоков: * ms

У меня есть эти предупреждения в моем logcat, даже через некоторое время, что я оставил приложение. (Не убил, хотя, просто нажал, чтобы оставить его.) 05-03 13:43:42.955 13047-13053/package W/art: Suspending all threads took: 7.873ms 05-03 13:44:32.458 13047-13053/package W/art: Suspending all threads took: 13.441ms 05-03 13:46:58.584 13047-13053/package W/art: Suspending all threads took: 34.462ms 05-03 13:47:00.574 13047-13053/package W/art: […]

Android: onCreate () вызывается несколько раз (а не мной)

Сейчас я не совсем понимаю. Мой основной класс активности создает службу, которая создает новый поток, ожидающий подключения TCP. Когда кто-нибудь войдет, он начнет новую деятельность: Intent dialogIntent = new Intent(getBaseContext(), VoIPCall.class); dialogIntent.putExtra("inetAddress", clientSocket.getInetAddress()); dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getApplication().startActivity(dialogIntent); После этого onCreate() метод onCreate() этого класса. Он создаст 2 потока: один записывает и отправляет данные, другой – принимает и […]

Многопоточная блокировка SQLiteDatabase

Я использую этот класс для управления соединением с базой данных SQLiteDatabase public class BasicDataSource { protected DatabaseHandler dbHelper; protected volatile SQLiteDatabase readable_database; protected volatile SQLiteDatabase writable_database; protected Object read_lock = new Object(); protected Object write_lock = new Object(); protected Context context; protected BasicDataSource(Context ctx) { dbHelper = DatabaseHandler.getInstance(ctx); getReadableDatabase(); dbHelper.onCreate(getWritableDatabase()); this.context = ctx; } public […]

Одновременный запрос HttpClient с использованием нескольких AsyncTasks

Я разрабатываю приложение, которое требует одновременного скачивания нескольких файлов. Я создаю AsyncTask с собственным HttpClient для каждого файла, но следующий файл загружается только после завершения предыдущего. Может ли это быть серверной проблемой?

Правый подход Android: где JSON-ответ должен анализироваться – в потоке пользовательского интерфейса или в другом?

Мне просто интересно: где JSONObject или JSONArray полученные с веб-сервера, должны анализироваться в приложении Android – в основном пользовательском интерфейсе или должны быть доставлены другому? Например, я использую библиотеку Volley: private void fetchResults(){ RequestQueue queue = Volley.newRequestQueue(mContext); String url = AuthenticationRequester.URL_GET_ALL_ORDERS; JsonArrayRequest jsonDepartureObj = new JsonArrayRequest(url, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray jsonArray) { […]

Отобразить идентификатор темы Android в LogCat

По умолчанию LogCat на Eclipse отображает 5 информационных столбцов: Time Level pid tag message Можно ли добавить 6-й столбец, отображающий идентификатор потока ?

Чтобы отменить отмену AsyncTask не должен периодически проверять флаг в doInBackground, он будет неустойчивым?

Я хочу принудительно отменить AsyncTask. Я вижу, что вы можете использовать isCancelled (), как в этом действительном решении (которое под капотом использует AtomicBoolean . Но я вижу решения вроде private boolean isTaskCancelled = false; , где есть новый флаг, введенный private boolean isTaskCancelled = false; , И я начал задаваться вопросом – поскольку этот флаг […]

Передать переменные между рендерером и другим классом с помощью queueEvent ()

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