CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 4 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 39 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 10 su 10
Discussione:

Gestione thread

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Gestione thread

    Salve a tutti...
    Vorrei chiedervi, se dal thread principale(della UI) creao e avvio un thread secondario, come faccio da quest'ultimo a incaricare totalmente il thread principale a eseguire qualche lavoro?
    Mi spiego meglio...
    ad esempio se dal thread secondario voglio stampare qualcosa su una TextView, ho visto che posso utilizzare il seguente codice:



    Però a quanto pare questa operazione viene effettuata dal thread secondario(e non da quello principale), in quanto ho fatto la seguente prova:



    Eseguendo il thread per 10 secondi non succede nulla, passati i 10 secondi viene stamato "primo" e subito dopo "secondo". Quindi viene stoppato il thread secondario....

    CONCLUSIONE:
    A me servirebbe un meccanismo in modo che il thread secondario incarica totalmente il thread principale a effettuare l'operazione. Così il thread secondario appena notifica ciò al thread principale, torna immediatamente a fare il proprio lavoro...

    Sapete aiutarmi?


    Vi ringrazio molto....

  2.  
  3. #2
    Androidiano


    Registrato dal
    Apr 2011
    Località
    Lodi
    Messaggi
    256
    Smartphone
    Samsung S2, Nexus 5

    Ringraziamenti
    5
    Ringraziato 32 volte in 31 Posts
    Predefinito

    ma fai il contrario no?
    Vedo tutto attraverso sabbia rossa e deserto...


  4. #3
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ehm no....
    mi serve proprio che il thread secondario delega il lavoro al thread principale così che il thread secondario torni immediatamente a fare il suo lavoro...

    Qualcuno conosce un meccanismo?

  5. #4
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Quote Originariamente inviato da chri13 Visualizza il messaggio
    Salve a tutti...
    Vorrei chiedervi, se dal thread principale(della UI) creao e avvio un thread secondario, come faccio da quest'ultimo a incaricare totalmente il thread principale a eseguire qualche lavoro?
    Mi spiego meglio...
    ad esempio se dal thread secondario voglio stampare qualcosa su una TextView, ho visto che posso utilizzare il seguente codice:



    Però a quanto pare questa operazione viene effettuata dal thread secondario(e non da quello principale), in quanto ho fatto la seguente prova:



    Eseguendo il thread per 10 secondi non succede nulla, passati i 10 secondi viene stamato "primo" e subito dopo "secondo". Quindi viene stoppato il thread secondario....

    CONCLUSIONE:
    A me servirebbe un meccanismo in modo che il thread secondario incarica totalmente il thread principale a effettuare l'operazione. Così il thread secondario appena notifica ciò al thread principale, torna immediatamente a fare il proprio lavoro...

    Sapete aiutarmi?


    Vi ringrazio molto....
    Beh, il comportamento è perfettamente normale: hai due metodi run che vengono entrambi eseguiti nel thread principale. Il primo ha un delay di tot secondi, quindi è normale che il secondo messaggio venga visualizzato dopo. Ma entrambi i metodi sono stati eseguiti nel thread principale.

  6. #5
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Si confermo, hai pienamente ragione infatti.

    In ogni caso a me serve un meccanismo (simile a questo), nel quale il thread secondario resta in ascolto in una socket e ogni volta che riceve una stringa manda un messaggio al thread principale(con la stringa ricevuta) così che il thread secondario torna "immediatamente" in ascolto sulla socket e il thread principale appena riceve l'"avviso" processa la stringa....
    Cosa mi consigliate più appropriato, gli Handler?

  7. #6
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Quote Originariamente inviato da chri13 Visualizza il messaggio
    Si confermo, hai pienamente ragione infatti.

    In ogni caso a me serve un meccanismo (simile a questo), nel quale il thread secondario resta in ascolto in una socket e ogni volta che riceve una stringa manda un messaggio al thread principale(con la stringa ricevuta) così che il thread secondario torna "immediatamente" in ascolto sulla socket e il thread principale appena riceve l'"avviso" processa la stringa....
    Cosa mi consigliate più appropriato, gli Handler?
    In Android per gestire i thread di solito si usano gli AsyncTask o gli Handler, di solito collocati all'interno di un Service.
    Questa è la best practice, ma a seconda dalle esigenze puoi anche non usare i Service o usare il meccanismo di gestione dei thread di Java come nel tuo esempio. Tutto dipende dallo scopo e dalle tue esigenze.

  8. #7
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Io semplicemente devo utilizzare un thread secondario che istanzia una socket e resta in attesa di ricevere stringhe sulla stessa socket. Ogni volta che riceve una stringa avvisa il thread principale(che ci farà delle operazioni) e torna immediatamente in ascolto sulla stessa socket.
    Che meccanismo mi consigli?

  9. #8
    Androidiano


    Registrato dal
    Apr 2011
    Località
    Lodi
    Messaggi
    256
    Smartphone
    Samsung S2, Nexus 5

    Ringraziamenti
    5
    Ringraziato 32 volte in 31 Posts
    Predefinito

    Usa due thread alla risposta della socket del primo lanci il secondo che fa le sue operazioni e poi termina mentre il primo continua a girare il Main lo usi solo per lanciare la prima volta il primo thread

    Inviato dal mio Nexus 5 usando Androidiani App
    Vedo tutto attraverso sabbia rossa e deserto...


  10. #9
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Perfetto.
    Domanda:

    Nel seguente codice:



    Il thread principale istanzia e avvia il thread secondario...Nel thread secondario viene eseguito il metodo run(), dopo che esegue le due istruzioni(istruzione1, istruzione2) il trhead secondario muore? o rimane attivo per un po?

  11. #10
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Appena eseguite le due istruzioni il thread secondario muore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy