Autore Topic: Thread e Logcat  (Letto 513 volte)

Offline qualcuno

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Google+
    • Mostra profilo
    • Ingegnere Informatico Blog
Thread e Logcat
« il: 08 Febbraio 2012, 15:55:28 CET »
0
Salve,

ho realizzato un app dove vi sono due thread, in un thread recupero la latitudine
e passo tramite un handler le info al thread principale,

ora per vedere se tutto funziona ho utilizzato il ddms e ho visto che il thread è stato creato, ma non c'è un modo per
vedere da quale thread viene prodotto un messaggio di Log?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Thread e Logcat
« Risposta #1 il: 08 Febbraio 2012, 16:26:36 CET »
0
Potresti usare la TAG della funzione di Log, ma puoi anche farlo scrivere nel log stesso.

Codice (Java): [Seleziona]
Log.d("MYAPP-THREAD-1","Thread #1 ha scritto : ............");
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline qualcuno

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Google+
    • Mostra profilo
    • Ingegnere Informatico Blog
Re:Thread e Logcat
« Risposta #2 il: 08 Febbraio 2012, 17:21:53 CET »
0
Potresti usare la TAG della funzione di Log, ma puoi anche farlo scrivere nel log stesso.

Codice (Java): [Seleziona]
Log.d("MYAPP-THREAD-1","Thread #1 ha scritto : ............");

si quello l'avevo fatto però la mia domanda è se c'è un modo per capire quale thread genera il messaggio

un parallelismo con i processi: nel logcat c'è il PID e da li si capisce quale processo genera il messaggio, allo stesso modo vorrei che succedesse con i thread... cioè che mi dicesse il Tid... esiste un modo?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Thread e Logcat
« Risposta #3 il: 08 Febbraio 2012, 18:01:12 CET »
0
Ti riferisci ad un messaggio qualsiasi?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline qualcuno

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Google+
    • Mostra profilo
    • Ingegnere Informatico Blog
Re:Thread e Logcat
« Risposta #4 il: 08 Febbraio 2012, 18:17:39 CET »
0
si cmq per chi avesse la mia stessa necessità ho sfruttato la seguente istruzione:

Thread.currentThread.getId()
e l'ho stampata come una stringa su log...

adesso ho un altro dubbio:

io ho il thread che esegue la seguente operazione

Codice (Java): [Seleziona]
        public void run() {
                // TODO Auto-generated method stub
                Looper.prepare();
                locationManager.requestLocationUpdates(bestProvider, 0, 0, this);
                Looper.loop();
               
        }
in una classe che implementa l'interfaccia Runnable,

nella stessa classe ho il seguente metodo richiamato automaticamente dal sistema Android quando arrivano delle coordinate dal Sensore GPS


Codice (Java): [Seleziona]
public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub
       
                if(isBetterLocation(location,bestLocation));
                {
                bestLocation=location;
                Log.i("LAT worker thread", ""+bestLocation.getLatitude()+" "+Thread.currentThread().getId());
                Message msg= mCallerHandler.obtainMessage();
                Bundle data = new Bundle();
                data.putDouble("latitudine", bestLocation.getLatitude());
                msg.setData(data);
                mCallerHandler.sendMessage(msg);
                thread.interrupt();
                }
               
               
               
        }

sfruttando il ddms in eclipse, noto che il comando interrupt non funziona, infatti ogni volta che premo invio e faccio
ripartire l'activity in questione si avvia un nuovo thread, e nel ddms ottengo un elenco di thread uguali tra loro ma con diverso id...

come faccio a fermare un thread ed eliminarlo definitivamente?