Parcel eller statiskt objekt?

Diskussion i 'Frågor, support och diskussion' startad av Maxxan, 17 aug 2011.

  1. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Jag håller på med en app där jag ska skicka data mellan aktiviteter (skicka ett objekt till en aktivitet som ändrar något och skickar tillbaka samma objekt).

    Som det är nu har jag använt ett statiskt objekt som man sätter i Aktivitet1 innan man skapar Aktivitet2. Problemet är att om appen varit i vänteläge under Aktivitet2 och minnet återanvänts så är mitt objekt null vilket gör att man får ett undantag om man ska använda det tex i onCreate.

    Som jag löst det nu så kollar jag om det är null i onResume och startar om appen isf.

    Men finns det något bättre sätt att lösa det på? Om jag skulle skicka det som Parcel, skulle det automatiskt lösas då utan att jag behöver kolla hela tiden att det är null och starta om appen?
     
  2. nadam

    nadam Youth Droid Medlem

    Blev medlem:
    10 feb 2010
    Inlägg:
    182
    Mottagna gillanden:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Det beror på vad det är för objekt och kanske vad det är för app. Parcel borde fungera eller att göra om det till Bundle.
     
  3. foobar17

    foobar17 Kid Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    56
    Mottagna gillanden:
    11

    MINA ENHETER

    Om det är aktiviteter i samma app, är det enklaste att en gemensam datastruktur i applikations-klassen. Skapa en dylik genom att sub-klassa android.app.Application. Så länge din app är aktiv så finns också applikations-objektet aktivt.
     
  4. Adam2

    Adam2 Adult Droid Medlem

    Blev medlem:
    26 jul 2010
    Inlägg:
    732
    Mottagna gillanden:
    55

    MINA ENHETER

    Snyggaste lösningen tycker jag är putExtras() men det beror som sagt lite på vad för objekt du pysslar med. Kanske kan du skicka in ett id och att den mottagande aktiviteten kan hämta objektet i en databas?

    Sent from my Nexus S using Tapatalk
     
  5. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Det är av typen:
    Aktivitet1 är en lista på personer, när man klickar på en person vill man ändra den, då startas aktivitet2 där man kan skriva in namn osv för person-objektet och sen sparas det när man trycker OK.

    Säg att man har 1KB info för varje person.
    Som det är nu använder jag ingen databas utan en binär fil som läser in all info och håller det i minnen (det blir inte några större mängder, så jag oroar mig inte för minnesproblem, även om det inte är bästa sättet). Sen har jag ett singelton objekt som håller all info.
     
  6. Adam2

    Adam2 Adult Droid Medlem

    Blev medlem:
    26 jul 2010
    Inlägg:
    732
    Mottagna gillanden:
    55

    MINA ENHETER

    Låter som ett ypperligt tillfälle att lära sig hantera en databas ;-)

    Anyway, hur skiljer du på personerna i din fil? Och hur hanterar du personerna i applikationen? Har du något objekt?

    Sent from my Nexus S using Tapatalk
     
  7. nadam

    nadam Youth Droid Medlem

    Blev medlem:
    10 feb 2010
    Inlägg:
    182
    Mottagna gillanden:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    I så fall behöver du bara skicka ett id från aktivitet 1 till aktivitet 2, så kan aktivitet 2 läsa upp info från singelton-objektet baserat på id:t.

    Se bara till att singelton-objektet inte är beroende av aktivitet 1. Det gör du enklast genom att initiera det från onCreate() i en subklass till Application eller genom "lazy initialization".
     
  8. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Aha, jag ska ta lite av idéerna å fundera på vad som blir bäst. Men att lära sig databas e inte helt fel. :)