Я новичок в разработке Android. Я работаю над Swing и SWT уже несколько лет. Как в Swing, так и в SWT есть стратегия для выполнения кода в синхронизации и асинхронном потоке пользовательского интерфейса. Типичное использование заключается в том, что некоторые сотрудники отнимают много времени в одном потоке, а затем отображают результат в асинхронном потоке пользовательского интерфейса.
Итак, мой вопрос: есть ли аналогичная стратегия в Android? Вот мой код. Параметр runnable — это некоторый временной код. Этот метод будет отображать диалоговое окно ожидания во время выполнения, а затем ОЖИДАТЬ показ Toast после его завершения. Но Toast нужно показывать в потоке пользовательского интерфейса. Итак, как это сделать?
public static void showWaitingDialog(final Activity parent, final Runnable runnable, String msg) {
if (StringUtils.isEmpty(msg)) {
msg = "processing...";
}
final ProgressDialog waitingDialog = ProgressDialog.show(parent, "Please Wait...", msg, true);
// execute in a new thread instead of UI thread
ThreadPoolUtil.execute(new Runnable() {
public void run() {
try {
// some time-consume operation
runnable.run();
} catch (Exception e) {
e.printStackTrace();
} finally {
waitingDialog.dismiss();
}
// TODO: How to display a Toast message here? execute some code in UI Thread.
}
});
}
И есть ли какие-нибудь слова о системе пользовательского интерфейса Android? Например, это Thread-Safe, как потоки работают вместе и так далее. Огромное спасибо!
AsyncTask
, это наиболее поддерживаемый способ developer.android.com/reference/ android/os/AsyncTask.html - person Marek Sebera   schedule 07.02.2012