Autore Topic: StartActivity da AsyncTask (classe esterna)  (Letto 360 volte)

Offline Frasso182

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Windows 10
StartActivity da AsyncTask (classe esterna)
« il: 06 Agosto 2015, 14:29:05 CEST »
0
Buongiorno a tutti,
nella mia applicazione sto utilizzando molto gli AsyncTask.
L'unico mio problema è riuscire a eseguire un intent per passare a un'altra activity una volta terminata l'esecuzione del task, nel metodo onPostExecute.
Passare il contesto o l'activity al task non è un problema, ma non riesco a eseguire l'intent.
In realtà l'activity che esegue il task implementa anche un'interfaccia custom SynchronizeTaskListener , nella quale è presente un metodo che viene scatenato nell'onPostExecute del task.
L'override di questo metodo è presente nell'activity ma, anche provando a gestire l'intent da qui, il risultato non cambia.
Avete qualche suggerimento?

Grazie
Ciao

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:StartActivity da AsyncTask (classe esterna)
« Risposta #1 il: 07 Agosto 2015, 06:58:11 CEST »
0
Posta il codice.
SimoneDev @ Google Play Store

Offline Frasso182

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Windows 10
Re:StartActivity da AsyncTask (classe esterna)
« Risposta #2 il: 07 Agosto 2015, 09:47:00 CEST »
0
Ciao questo è il codice del metodo onPostExecute dell'AsyncTask:
Codice (Java): [Seleziona]
 @Override
    protected void onPostExecute( Boolean b) {
            super.onPostExecute(b);
             
              //primo metodo
             Intent intentByContext = new Intent (ctx, DettaglioVisitaActivity.class);
            ctx.startActivity(intentByContext);

             //secondo metodo
            Intent intentByActivity = new Intent (activity, DettaglioVisitaActivity.class);
            activity.startActivity(intentByActivity);    }
ctx è il contesto dell'activity, mentre activity è l'activity vera e propria. Li passo al task nel costruttore.
Usando il contesto dell'activity mi crasha l'app, mentre usando l'activity sono riuscito a risolvere il problema.
Ci avevo già provato ieri ma evidentemente sbagliavo qualcosa.
Stesso codice funziona nell'override del metodo dell'interfaccia custom SynchronizeTaskListener nell'activity.
Grazie

Ciao  :-)