Hur: Fragment lyssna efter service klar

Discussion in 'Frågor, support och diskussion' started by Dahliz91, Feb 5, 2012.

  1. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Jag har en service som parsar en JSON-sida och fyller på en lista i en Singleton klass. När den är klar behöver jag på något sätt meddela min fragment som då ska uppdatera listan som används i adaptern (ListFragment). Någon som vet hur man gör det här? Så helt enkelt ska bara en funktion i fragment köras när servicen är klar.
     
  2. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Finns lite olika sätt att lösa. Här är två:

    1. Byt ut servicen mot en AsyncTask i fragmentet och anropa funktionen från onPostExecute()

    2. Låt fragmentet ha en BroadcastReceiver som tar emot ett intent från servicen
     
  3. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Hur fungerar de två då? Hänger inte riktigt med på hur man ska göra. Inte jobbat med AsyncTask osv. innan eftersom man kunnat köra HTTP funktioner i UI-tråden innan.
     
  4. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Det är just det som AsyncTask löser då den har en egen trådpool.
    Mer info hittar du här http://www.google.se/#q=AsyncTask.
     
  5. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Ett litet problem bara, hur ska jag via onPostExecute kunna köra en metod i min fragment?

    EDIT: Eller är det bara att köra Class.this.metoden() som vanligt i Java?
     
    Last edited: Feb 6, 2012
  6. ozp

    ozp Teen Droid Medlem

    Joined:
    May 6, 2010
    Messages:
    250
    Likes Received:
    31

    MINA ENHETER

    Om du implementerar asyncTasken i samma fil som fragmentet så kan du göra så.
     
    Dahliz91 likes this.
  7. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Löste det genom att använda mig av LoaderManager. Men tack för hjälpen.