Envoyer des données à partir de l'Activité de Service
Comment puis-je envoyer des données à partir de l'actuel Activity
à un arrière-plan Service
classe qui est en cours d'exécution à certaines périodes? J'ai essayé de mettre en Intent.putExtras()
mais je ne suis pas le faire dans Service
classe
Code dans Activity
classe qui appelle à la Service
.
Intent mServiceIntent = new Intent(this, SchedulerEventService.class);
mServiceIntent.putExtra("test", "Daily");
startService(mServiceIntent);
Code dans Service
classe. Je treid de mettre en onBind()
et onStartCommand()
. Aucune de ces méthodes imprime la valeur.
@Override
public IBinder onBind(Intent intent) {
//Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
//String data = intent.getDataString();
Toast.makeText(this, "Starting..", Toast.LENGTH_SHORT).show();
Log.d(APP_TAG,intent.getExtras().getString("test"));
return null;
}
OriginalL'auteur Chintan | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
Votre code doit être
onStartCommand
. Si vous n'appelez jamaisbindService
sur votre activitéonBind
ne sera pas appelé, et l'utilisationgetStringExtra()
au lieu degetExtras()
si (intention != null) dans le onStartCommand. Mais lorsque vous appelez startService onStartCommand sera appelé avec votre intention. Publier vos logcat pour cette nullPointerException.
Bien sûr, avec l'original de votre code, vous obtiendrez nullPointerException sur la ligne de l'intention.getExtras().getStringt() depuis intention.getExtras est null.
merci...il a commencé à travailler
Continuer avec la même question. Quelqu'un sait comment créer de nouveaux dans l'Attente de l'Intention evertime de Service au lieu de la mise à jour?
OriginalL'auteur Hoan Nguyen
Si vous souhaitez passer des types de données primitifs qui peut être mis en Intention, je vous recommande d'utiliser IntentService. Pour démarrer le IntentService, tapez dans votre activité:
Puis créer un service de classe qui étend la classe IntentService classe:
OriginalL'auteur Marcin S.