Autore Topic: Uso dell'AsyncTask  (Letto 1088 volte)

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Uso dell'AsyncTask
« il: 15 Aprile 2011, 11:21:15 CEST »
0
Ciao a tutti,
ho cercato un po' in rete, ma l'uso base dell'AsyncTask, per la mia app, non mi basta. Ho bisogno di lavorare in un thread con diversi tipi di variabile e non mi è ben chiaro come passarli all'AsyncTask e come usarli.
Per ora gli passo con successo il Context, ma niente di più.
Credo di dover implementare una struttura (forse con un array di object?) e passarla al metodo execute, ma una mano sarebbe gradita. Per essere più chiari, eccovi il mio attuale (e funzionante) codice con il Context:

Codice (Java): [Seleziona]
// nell'OnCreate:
new InizializeTask().execute(mContext); // mContext è la variabile per il Context

// uscito dall'OnCreate:
private class InizializeTask extends AsyncTask<Context, Void, Void> {
      @Override
                protected Void doInBackground(Context... mContext) {
                                //Create, Initialise and then load the Sound manager (la mia classe per l'audio)
                               SoundManager.getInstance();
                               SoundManager.initSounds(mContext[0]);
                               SoundManager.loadSounds();
                               }
}

Se volessi passare anche l'Activity (o una stringa o un cammello.....), come procedo?

Grazie dell'aiuto!!!
« Ultima modifica: 15 Aprile 2011, 12:38:00 CEST da Zappescu »
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Uso dell'AsyncTask
« Risposta #1 il: 15 Aprile 2011, 12:17:56 CEST »
0
Non usare il costruttore di default per InizializeTask ma creane uno con tutti i parametri che ti servono:
Codice (Java): [Seleziona]
private class InizializeTask extends AsyncTask<Context, Void, Void> {
     public InizializeTask(String stringa, Cammello cammello) {
     }

P.S.: potresti editare il tuo primo post e includere il tuo codice dentro i tag java , grazie.

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Uso dell'AsyncTask
« Risposta #2 il: 15 Aprile 2011, 13:59:51 CEST »
+1
Grazie Marco,
io sono andato avanti stamattina a cercare ed ho risolto così:

Codice (Java): [Seleziona]
// Nell'OnCreate:
Object[] objects = new Object[2];
        objects[0] = mContext; // Context
        objects[1] = ACTIVITY; // MyGame

// Lancio il thread asynctask:
        new InizializeTask().execute(objects);

// Fuori dall'OnCreate:
// AsyncTask per lo start-up:
    private class InizializeTask extends AsyncTask<Object, Void, Void> {
                private Context mContext;
                private MyGame ACTIVITY;

                @Override
                protected Void doInBackground(Object... object) {
                                 //Create, Initialise and then load the Sound manager
                                 mContext = (Context) object[0]; // Non dimenticare il casting!
                                 SoundManager.getInstance();
                                 SoundManager.initSounds(mContext);
                                 SoundManager.loadSounds();

                    // etc. per l'altro
              }
    }

Non so se potrà servire a qualcuno ;)

Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Uso dell'AsyncTask
« Risposta #3 il: 13 Maggio 2011, 05:20:19 CEST »
0
[...] Non so se potrà servire a qualcuno ;)

A me è servito, thanks! ;)
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker