私はAndroid開発に不慣れです。私はSwingとSWTに数年間取り組んできました。SwingとSWTはどちらも、UIスレッドの同期と非同期でコードを実行するための戦略を持っています。典型的な使用法は、時間をかけて1つのスレッドでスタッフを消費し、結果をUIスレッド非同期で表示することです。
だから私の質問は、Androidに同様の戦略がありますか?これが私のコードです。実行可能なパラメーターは、時間のかかるコードです。このメソッドは、実行中に待機ダイアログを表示し、終了後にトーストを表示することを期待します。ただし、トーストはUIスレッドで表示する必要があります。それで、それをどのように行うのですか?
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 UIシステムについていくつかの言葉はありますか?スレッドセーフ、スレッドがどのように連携するかなどです。どうもありがとう!