1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Threads u. Handler

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von jim, 05.05.2011.

  1. jim, 05.05.2011 #1
    jim

    jim Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Hallo liebes Forum,

    ich arbeite mich gerade in Threads und auch Handler durch und habe ein einfaches Bsp. . Leider funktioniert das Senden aus dem thread nicht richtig und die handleMessage() wird nicht aufgerufen. Ich habe dies auch schon in einen anderen forum gepostet wo niemand mir helfen konnte. Vielleicht findet hier jemand den Fehler.

    mein extends thread class

    Code:
    public class recorderThread extends Thread {
    public boolean recording = true;  //variable to start or stop recording
    public int frequency; //the public variable that contains the frequency value "heard", it is updated continually while the thread is     running.
    int numSamples;
    AudioRecord recorder;
    int numCrossing,p;
    short audioData[];
    int bufferSize;
    private Handler parentHandler;
    
    public recorderThread (Handler parentHandle ) {
     this.parentHandler = parentHandle;
    }    
    @Override
    public void run() {
    doingSuff();
    Message msgn = new Message() ;
    msgn.arg1 = frequency;  
    /* Sending the message */
    parentHandler.sendMessage(msgn);
    } //while recording
    
    
    
      }//run   
    }//recorderThread

    meine activity class

    Code:
    public class sonicDistance extends Activity {
    
    
    recorderThread rthread ;
    static TextView freq;
    static TextView duration;
    static TextView samplerate;
    private static TextView temperature;
    static TextView measuredDistance;
    private static TextView measuredTimeDiff;
    public static TextView measuredFrequenz;
    private CustomDialog myfreqDialog;
    static double startTime = 0;
    static double endTime = 0;
    private static float c_propagation = 0;
    private static float choosen_temperature = 20;
    static double messureFreq = 0;
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        freq =((TextView) findViewById(R.id._freqOfTone));
        duration =((TextView) findViewById(R.id.duration));
        samplerate = ((TextView) findViewById(R.id.Samplerate));
        temperature  = ((TextView) findViewById(R.id.temperature));
        measuredFrequenz = ((TextView) findViewById(R.id._messuredFrequenz));
        measuredDistance = ((TextView) findViewById(R.id.distance));
        measuredTimeDiff = ((TextView) findViewById(R.id._timediff));
    
         rthread = new recorderThread(myHandler);
         rthead.run();
    
        }
    public Handler myHandler = new Handler(){
        public void handleMessage(Message msg) {
                System.out.println(msg.arg1);
                setTemperature(Float.valueOf((String)msg.obj));
                System.out.println("test" + Float.valueOf((String)msg.obj));
        }
    
        };
    
    
    @Override
    protected void onResume(){
        super.onResume();
    }
    
    }
    Vielen Dank, ich weis leider nicht weiter...
     
  2. Neeldarax, 05.05.2011 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hi jim,

    Threads werden mit start() zum Laufen gebracht.

    Wie weit wird dein Code abgearbeitet? Kriegst du einen Fehler/Exception? Steht was im Logcat?

    regards
     
    jim bedankt sich.
  3. jim, 05.05.2011 #3
    jim

    jim Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Vielen Dank, du hast hast mein Problem schon gelöst, ich habe den Thread mit run gestartet und dies ist bzw. war mein Fehler. Ich war nicht mir des Unterschiedes zwischen .run() .start() nicht bewusst.
    der Rest funktioniert wunderbar
     

Diese Seite empfehlen