Android docはrunOnUiThreadについて: "現在のスレッドがUIスレッドでない場合、そのアクションはUIスレッドのイベントキューにポストされます。"runOnUiThreadに関する質問
私の質問は、異なるアクティビティが同じイベントキューを共有するか、各アクティビティが独自のイベントキューを持つかどうかです。
と仮定アクティビティAは、何かをするスレッドを開始し、最終的にrunOnUiThreadを使用してUIを更新しますが、同時に、それは以下のコードのような活動Bを開始します。
public class HelloAndroid extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Thread myThread = new MyThread();
myThread.start();
Intent intent = new Intent(this, B.class);
startActivity(intent);
}
private class MyThread extends Thread {
public void run() {
/* Do somthing expensive */
......
/* Update UI */
HellowAndroid.this.runOnUiThread(new Runnable() {
@Override
public void run() {
/* Do UI update for activity A */;
}
});
}
}
}
どうかのスレッドがコードを実行しています"HellowAndroid.this.runOnUiThread(new Runnable ...)"と表示されているアクティビティはすでにBであり、スタックは現在ABで、Bが上部にあります。コード "HellowAndroid.this.runOnUiThread(new Runnable ...)"はアクティビティAを更新するために実行されますか?何が起こるか?この場合、アクティビティAのUIは更新されますか?
ありがとうございました。
またはAsyncTaskを使用 –
イベントキューはグローバルオブジェクトですか? – Kai
申し訳ありませんが、私は100%確信していませんが、私はおそらくアクティビティごとに行くでしょう、なぜあなたはそれを知る必要があるのでしょうか? – longhairedsi