コード public class MainActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); final TextView tv=new TextView(this); tv.setText("こんにちは"); layout.addView(tv); Button button = new Button(this); layout.addView(button); button.setText("ボタン"); final Handler handler=new Handler();{ new Thread(new Runnable() { @Override public void run() { handler.post(new Runnable() { @Override public void run() { try{ Thread.sleep(5000); } catch(InterruptedException e){ } tv.setText("別スレッドよりGUIにアクセス"); } }); } }).start(); } } }
上のプログラムなんですが、これを実行すると5秒後にボタンと文字「別スレッドよりGUIにアクセス」が表示されました。
私は実行すると
「こんにちは」とボタンが表示されて5秒後に「別スレッドよりGUIにアクセス」が表示されると思っていたのですが、なぜこのような動作になるのでしょうか?
また
「こんにちは」とボタンが表示されて5秒後に「別スレッドよりGUIにアクセス」が表示される
このようにするにはどこを改善すればいいのでしょうか?
よろしくお願いします。
回答3件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/04/04 07:01
2016/04/04 07:04
2016/04/04 07:17
2016/04/05 00:48