2010-12-30 7 views
0

私は、Webサービスから何かを取得し、返されたときにコンテナを埋めるアクティビティの途中で小さなワーカースレッドを実行しようとしていました。スレッド内で実行されていないrunOnUIiThread

new Thread() { 

     @Override 
     public void run() { 
      Log.w("thread", "can read from thread"); 

      try {     
       MyActivity.this.runOnUiThread(new Runnable() { 
        public void run() { 
         Log.w("internal thread", "running"); 
        } 
       }); 
      } 
      catch (Exception e) { 
       // etc 
      } 
     } 
    }.start(); 

「めねじ:実行中の」ログに印刷することはない、と私は内容をリッピングし、ちょうど方法の本体にそれを貼り付けたときに、それが働きました。私の結論は、二重にネストされたスレッドは決して走らなかったということです。なぜそれが起こるだろうか?私はrunOnUiThreadを悪用していますか?

ありがとうございます!

+0

例外を出力しようとしましたか? 'Log.e(" Test "、" exception "、e);'それを捕まえるブロックで。 –

+0

さて、それはどちらにも行かない。それは奇妙です。それは全体のことをスキップするようだ。 – SapphireSun

+2

asynctaskを使用する – Falmarri

答えて

0

どうしてですか?私はrunOnUiThreadを悪用していますか?

Yeas! runOnUiThreadは、メインスレッド以外のスレッドです。 Android Handlerを見てみることをお勧めします。