android.view.viewroot$CalledFromWrongThreadException

Put problem concerning Views, Layouts and other XML-Resources (like AndroidManifest) here.

android.view.viewroot$CalledFromWrongThreadException

Postby firebird » Mon Feb 15, 2010 12:18 pm

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2.  
  3.  
  4. public class main extends Activity implements OnClickListener {
  5.  
  6.        
  7.  
  8.         Button scanButton, stopButton;
  9.  
  10.         TextView logText;
  11.  
  12.         WifiManager wifi;
  13.  
  14.         Thread scanThread;
  15.  
  16.        
  17.  
  18.     /** Called when the activity is first created. */
  19.  
  20.     @Override
  21.  
  22.     public void onCreate(Bundle savedInstanceState) {
  23.  
  24.         super.onCreate(savedInstanceState);
  25.  
  26.         setContentView(R.layout.main);
  27.  
  28.        
  29.  
  30.         //Get elements
  31.  
  32.         scanButton = (Button) findViewById(R.id.Button01);
  33.  
  34.         stopButton = (Button) findViewById(R.id.Button02);
  35.  
  36.         logText = (TextView) findViewById(R.id.TextView01);
  37.  
  38.         wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  39.  
  40.         defineScanThread();
  41.  
  42.    
  43.  
  44.         //Set button listeners
  45.  
  46.         scanButton.setOnClickListener(this);
  47.  
  48.         stopButton.setOnClickListener(this);
  49.  
  50.     }
  51.  
  52.    
  53.  
  54.     public void defineScanThread() {
  55.  
  56.         scanThread = new Thread() {    
  57.  
  58.             public void run() {
  59.  
  60.                         logText.append("Gessing wifi configuration...\n");
  61.  
  62.                         logText.append("Done!\n");
  63.  
  64.             }
  65.  
  66.         };
  67.  
  68.     }
  69.  
  70.  
  71.  
  72.         public void onClick(View src) {        
  73.  
  74.                 switch(src.getId()){
  75.  
  76.                         case R.id.Button01: //Start button
  77.  
  78.                                 logText.append("Starting scan...\n");
  79.  
  80.                                 if(!wifi.isWifiEnabled()){
  81.  
  82.                                         logText.append("Wifi isn't enabled...\n");
  83.  
  84.                                         break;
  85.  
  86.                                 }else if(scanThread.isAlive()){
  87.  
  88.                                         logText.append("Scan already running...\n");
  89.  
  90.                                         break;
  91.  
  92.                                 }
  93.  
  94.                                 defineScanThread();
  95.  
  96.                                 scanThread.start();            
  97.  
  98.                                 break;
  99.  
  100.                         case R.id.Button02: //Stop button
  101.  
  102.                                 if(scanThread.isAlive()){
  103.  
  104.                                         logText.append("Stopping scan...\n");
  105.  
  106.                                         scanThread.stop();
  107.  
  108.                                         defineScanThread();
  109.  
  110.                                 }else{
  111.  
  112.                                         logText.append("Scan not running...\n");
  113.  
  114.                                 }
  115.  
  116.                                 break;
  117.  
  118.                 }
  119.  
  120.         }
  121.  
  122.  
  123.  
  124. }
  125.  
  126.  
  127.  
  128.  
Parsed in 0.036 seconds, using GeSHi 1.0.8.4


This code sometimes make my code crash... I can't call the logText.append() function, but how can I call that from the second thread?

Thanks!
firebird
Once Poster
Once Poster
 
Posts: 1
Joined: Mon Feb 15, 2010 12:11 pm

Top

Return to View, Layout & Resource Problems

Who is online

Users browsing this forum: No registered users and 8 guests