2011-06-20 7 views
1

Je suis en train de mettre en œuvre un WakefulIntentService en utilisant l'exemple CommonsWare. J'ai besoin de passer un emplacement à la sous-classe de WakefulIntentService, mais je n'ai pas été capable de le faire.Mettre en œuvre un WakefulIntentService

J'appelle sendWakefulWork en utilisant:

Intent i = new Intent(context, WakefulIntentService.class); 
i.putExtra(Constants.LOCATION, location); 
WakefulIntentService.sendWakefulWork(context, i); 

Sur classe WakefulIntentService je la méthode suivante:

public static void sendWakefulWork(Context context, Intent i) { 
    getLock(context).acquire(); 
    i.setClass(context, ProtocolController.class); 
    context.startService(i); 
} 

Et enfin, la classe ProtocolController:

public class ProtocolController extends WakefulIntentService { 

    public ProtocolController() { 
     super(ProtocolController.class.getSimpleName()); 
     Log.d(Constants.TAG, "starting Protocol"); 
    } 

    @Override 
    public void onCreate(){ 
     super.onCreate(); 
    } 

    @Override 
    protected void doWakefulWork(Intent intent) { 
     Log.d(Constants.TAG, "Doing wakeful work"); 
    } 
} 
+0

D'abord, vous ne l'avez pas poser une question ici. Deuxièmement, le soutien à 'WakefulIntentService', comme cela est indiqué sur la page d'accueil du projet, est par le (http://groups.google.com/group/cw-android) – CommonsWare

+0

Trouvée [Groupe cw-Google Android] une réponse? –

Répondre

0

Je ne pense pas vous pouvez passer un objet Location de la manière que vous essayez. J'utiliser putExtra pour transmettre les valeurs individuelles dont vous avez besoin, comme la latitude et la longitude, horodatage, etc ... Utilisez putExtra pour passer vos valeurs de base aime les chaînes, flotteurs, ints, booléens etc ...

+0

Oui, cela peut être fait: vous pouvez le passer en tant qu'objet et cela fonctionne bien. – Ullfoll

Questions connexes