onPre/PostExecute の機能と同様に、スレッドの開始前後に何かを実行するにはどうすればよいですか?
onPreExecute()
start()
-> を呼び出す前に実行するステートメントThread
onPostExecute()
->メイン アプリケーション スレッドで実行される を指定して、からrunOnUiThread()
、またはpost()
を呼び出します。View
Thread
Runnable
どうすればいいですか?
理想的には、そうしないでしょう。進行状況ダイアログは最悪です。UI のどこかに進行状況インジケーター (アクション バー、タイトル バーなど) を配置し、スレッドの動作中にユーザーが安全に実行できないいくつかのことを無効にします。
そうは言っても、おそらくDialogFragment
スレッドを実行する前に表示し、上記のメカニズムを介してスレッドが完了したらフラグメントを削除します。
実行後のビットについては、thread.join() を使用していますが、うまくいくようです。
イク。それはあなたがいるスレッドをブロックします。それがメインのアプリケーションスレッドである場合、それは本当に悪いことです。
アップデート
の例runOnUiThread()
:
new Thread() {
public void run() {
// do cool stuff
runOnUiThread(new Runnable() {
public void run() {
// do other cool stuff quickly on the main application thread
}
);
}
}).start();