Intereting Posts
NestedScrollView прокручивается вниз, когда содержимое заполняется Android – Как разрешить / включить параметр «Плавающие уведомления» по умолчанию для приложения с использованием кода Как я могу заменить type_orientation (устарел) для android 4.0.3? Как получить номер контакта от имени контакта в android Записи AppCompatSpinner не открывают TimePickerDialog при выборе его во второй раз. См. Подробности Каково значение тайм-аута по умолчанию для java.net.Socket в android? Выберите камеру в загрузке файла в приложении кордовы на андроид без использования камеры cordova Как отправить простую электронную почту программно? (Существует простой способ сделать это?) Модернизация POST-запроса с базовой аутентификацией HTTP: «Невозможно повторить потоковое тело HTTP» Как создать вкладку в Android 4.0? Не удалось преобразовать формат Dalvik: невозможно выполнить dex: java.nio.BufferOverflowException Не удалось открыть Android 6.0: EACCES (Permission denied) Отображать данные каждые 10 секунд в Android Как изменить стиль размещения TextInput в React Native? Android прокручивается в нижней части списка

Call Главная тема из Secondary thread в Java / Android

Как вызвать главный поток из вторичного потока в Java / Android.

Solutions Collecting From Web of "Call Главная тема из Secondary thread в Java / Android"

Самый простой способ – вызвать runOnUiThread (…) из вашего потока

activity.runOnUiThread(new Runnable() { public void run() { ... do your GUI stuff } }); 

Моя рекомендация обмениваться потоками в одном процессе – это отправлять сообщения между этими потоками. С этой обработкой очень легко управлять обработчиками:

http://developer.android.com/reference/android/os/Handler.html

Пример использования документации Android для обработки дорогостоящей работы из потока ui:

 public class MyActivity extends Activity { [ . . . ] // Need handler for callbacks to the UI thread final Handler mHandler = new Handler(); // Create runnable for posting final Runnable mUpdateResults = new Runnable() { public void run() { updateResultsInUi(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); [ . . . ] } protected void startLongRunningOperation() { // Fire off a thread to do some work that we shouldn't do directly in the UI thread Thread t = new Thread() { public void run() { mResults = doSomethingExpensive(); mHandler.post(mUpdateResults); } }; t.start(); } private void updateResultsInUi() { // Back in the UI thread -- update our UI elements based on the data in mResults [ . . . ] } } 

Вам понадобится Handler который передает информацию обратно в основной поток.

Также хорошо помнить, что если вы получаете дополнительный поток через AsyncTask, у вас есть возможность вызывать onProgressUpdate () , onPostExecute () и т. Д. Для работы над основным потоком.