Androidアプリケーションで次のコードを実行している間、setTextはmainActivity.notify()が別のサービスから呼び出された後に発生します。したがって、mainActivity.wait()がsetTextの前に実行されているため、setTextが待機するように見えます。Androidでwait()関数を使用しているときに同期実行する方法は?
mainActivity.wait()の前にToastを実行して、MainActivityの待機中にsetTextを表示する方法が考えられます。
public static Activity mainActivity;
....
startButton.setText("Processing...");
synchronized(MainActivity.mainActivity) {
try {
mainActivity.wait();
} catch (InterruptedException e) {
}
}
startButton.setText("Start");
を凍結しているのThread.sleep使用することができますか?どうして? –
メイン(UI)スレッドを待機させることはできません。これには理由はなく、Androidフレームワークでは許可されません。それは応答しないためにあなたのアプリを殺すでしょう。ここで何を達成しようとしていますか? –
@DavidWasser私はそれを理解しています。私のMainActivityは、サービスが処理を完了するまで1-2秒待っているので、サービスが生成した結果を表示できます。 –