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

AsyncTask, GPS, was muss parallel laufen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Artwork, 07.08.2010.

  1. Artwork, 07.08.2010 #1
    Artwork

    Artwork Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    29.07.2010
    Phone:
    T-Mobile G1
    Hi,

    ich habe 2 Klassen:

    Code:
    public class GeoDataGateway implements LocationListener
    und

    Code:
    public class MainActivity extends Activity
    In MainActivity initialisiere ich das GeoDataGateway. Dieses sendet an MainActivity GPS Status Updates.

    Code:
    public void onLocationChanged(Location location) {
    		location = this.lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    		try {
    			this.mLongitude = location.getLongitude();
    			this.mLatitude = location.getLatitude();		
    			Message msg = Message.obtain();
    			msg.what = UPDATE_LOCATION;
    			this.SystemService.updateHandler.sendMessage(msg);
    		} catch (NullPointerException e) {
    			Log.i("Null pointer exception " + mLongitude + "," + mLatitude, null);
    		}
    }	
    
    Hier wird an MainActivity eine Nachricht gesendet. In MainActivity verarbeite ich diese Updates so:

    Code:
     Handler updateHandler = new Handler() {
        	/** Gets called on every message that is received */
        	// @Override
        	public void handleMessage(Message msg) {
        		switch (msg.what) {
    	    		case UPDATE_LOCATION: {
    	    			if(geosenseo.getCurrentPoint() == null){
    	    				streetView.setText("locating...");
    	    			}else{
    	    				streetView.setText(geosenseo.getCurrentStreet());
    	    				cityView.setText(geosenseo.getCurrentCity());
    	    			}
    	    		}
        	    }
        		super.handleMessage(msg);
        	}
         };
    
    Alle 5 sec bekomme ich ein Update und setzte einige Informationen auf die Gui. Das Problem ist dann, dass die Gui sich aufhängt, also streetView.setText(geosenseo.getCurrentStreet()); würde gerade noch gehen, wenn ich dann noch cityView.setText(geosenseo.getCurrentCity()); hinzufüge hängt sich die App komplett auf.

    Nun kann man sich da mit Threads usw helfen lassen. Aber irgendwie begreife ich gerade nicht was denn nun parallel ablaufen soll.

    Ich meine die GPS updates kommen ja schon parallel zum hauptprogramm. das gps modul quasi nochmal in einem thread unterzubringen würde ja keinen sinn machen.

    Nun Liegt der Handler ja in MainActivity, vllt den auslagern?^^:confused:
     

Diese Seite empfehlen