2015-07-20 137 views
0

我想用線程編寫代碼來創建併發應用程序。 當我點擊「主線程」按鈕時,「doHeavyWork」方法啓動並在用戶完成時向用戶顯示敬酒!使用線程時崩潰

但是當我想使用線程並單擊「單線程」按鈕時,「doHeavyWork」方法啓動,但最後程序停止並崩潰。

我的問題是什麼?

我使用物理電話進行調試。

這是我的代碼:

package khosravi.mehdi.course.app.thread_test; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Toast; 


public class MyTestThreadActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     findViewById(R.id.btnMainThread).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       doHeavyWork(); 
      } 
     }); 

     findViewById(R.id.btnSingleThread).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       Thread thread = new Thread(new Runnable() { 

        @Override 
        public void run() { 
         doHeavyWork(); 
        } 
       }); 
       thread.start(); 
      } 
     }); 

    } 


    public void doHeavyWork() { 
     String str = ""; 
     for (int i = 0; i < 7000; i++) { 
      str += i; 
      Log.i("LOG", "i:" + i); 
     } 
     Toast.makeText(MyTestThreadActivity.this, "Heavy Work is finish !", Toast.LENGTH_SHORT).show(); 
    } 

} 

回答

0

嘗試在活動這個代碼運行顯示相關的東西背在UI線程上。