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 () и т. Д. Для работы над основным потоком.