"Snacka" med en :remote service från widget

Discussion in 'Frågor, support och diskussion' started by Pajn, Dec 30, 2011.

  1. Pajn

    Pajn Adult Droid Medlem

    Joined:
    Aug 12, 2009
    Messages:
    606
    Likes Received:
    51

    MINA ENHETER

    Hur "snackar" jag med en :remote service från en widget?

    I activity:rna kör jag AIDL med bra resultat och startar då servicen när den är av. Men jag vill ju inte att servicen ska behöva ligga igång hela tiden min widget är igång så att bara kopiera den lösningen (om det ens går) till min widget är ju ingen bra lösning.

    Jag vill även kunna uppdatera widgeten ifrån servicen, men det borde ju inte vara ett större problem om jag bara lyckas "snacka" med den. Antar att det går jag trigga widgetens Update med något liknande det jag gör i WidgetConfigure activity:n?
    Code:
                    // Push widget update to surface with newly set prefix
                    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(mContext);
                    WidgetProvider.Update(mContext, appWidgetManager,
                    		appWidgetId);
     
  2. ozp

    ozp Teen Droid Medlem

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

    MINA ENHETER

    Förstår inte riktigt vad du är ute efter, men du kanske ska kika på pending intents. Då kan du skapa intents som skickas när du klickar på något i AppWidgeten.
     
  3. Pajn

    Pajn Adult Droid Medlem

    Joined:
    Aug 12, 2009
    Messages:
    606
    Likes Received:
    51

    MINA ENHETER

    Får försöka förklara lite bättre. Jag håller på med en musikspelare. Servicen som sköter själva uppspelandet ligger i en egen tråd och för att kunna snacka med den måste jag använda AIDL.

    Idag kör jag för "dumma" (play/next och sånna som inte kräver svar) kommandon igång en Service och etablerar en AIDL anslutning och skickar kommandot. Men för kommandon som behöver svar (vilken låt som spelas och liknande) funkar ju inte det. Att etablera en AIDL anslutning direkt i widgeten går inte heller eftersom den har slutat köras när anslutningen väl är uppe.

    Så jag måste på nått sätt skicka data från min service till widgeten. Om det görs från servicen eller att widgeten "hämtar" data spelar ingen roll.
     
  4. ozp

    ozp Teen Droid Medlem

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

    MINA ENHETER

    För att uppdatera en appwidget från en service gör du på samma sätt som när du uppdaterar appwidgeten i onUpdate()

    Här finns en guide för hur man skapar en appwidget. Android Homescreen Widgets- Tutorial
     
    Pajn likes this.
  5. Pajn

    Pajn Adult Droid Medlem

    Joined:
    Aug 12, 2009
    Messages:
    606
    Likes Received:
    51

    MINA ENHETER

    Okej tack. Då borde det inte vara några problem :)