comment puis-je obtenir la valeur de retour à partir d'android services
J'ai le problème que je ne sais pas comment je peux récupérer la valeur de retour de services. Pourquoi je veux la valeur de retour de services est que je veux afficher cette valeur de retour de l'Activité de la page. Voici mon fichier de services et la valeur de retour est retvalue.
public class SyncService extends Service{
private String forSync, lastrecordfromlocal, userdefined;
DatabaseUtil dbUtil = new DatabaseUtil(this);
@Override
public IBinder onBind(Intent arg0) {
//TODO Auto-generated method stub
return null;
}
@SuppressWarnings("deprecation")
@Override
public void onStart(Intent intent, int startId) {
//TODO Auto-generated method stub
super.onStart(intent, startId);
forSync = common.getInfoForSync(this);
String[] getlist = forSync.split(":");
lastrecordfromlocal = getlist[0].toString();
userdefined = getlist[1].toString();
if (common.isNetAvailable(this) == true) {
SyncServiceTask InstallData = new SyncServiceTask(this);
try {
String (((retvalue))) = InstallData.execute(lastrecordfromlocal, userdefined).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
this.stopSelf();
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
Comment sur une interface
u peut afficher le code? @SKT
vous pouvez utiliser la radiodiffusion locale, je mouillage un exemple simple ici wiki.workassis.com/android-local-broadcast-receiver
Est-ce que votre service fonctionne sur le même processus que l'activité?
u peut afficher le code? @SKT
vous pouvez utiliser la radiodiffusion locale, je mouillage un exemple simple ici wiki.workassis.com/android-local-broadcast-receiver
Est-ce que votre service fonctionne sur le même processus que l'activité?
OriginalL'auteur PPShein | 2013-09-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lier un service à l'Activité:lien
Votre Service:
Et dans l'Activité de vérifier la valeur:
OriginalL'auteur Srikanth Roopa
Autant que je sache, la façon la plus courante de service pour communiquer avec l'activité est par DIFFUSION.
Vous pouvez envoyer une diffusion à la position que vous souhaitez revenir au retvalue" par quelque chose comme:
qui ServiceReturnIntent et "retvalue" sont tous d'auto-défini les chaînes d'identifier la radiodiffusion et de la valeur de nom.
Et dans votre activité qui veut attraper la valeur de retour, vous devez disposer d'un récepteur de radiodiffusion, avec quelque chose comme:
Vous pouvez lire ce tutoriel pour en savoir plus sur la diffusion dans android.
MODIFIER
modifier le code de l'échantillon avec un réglage à un textview
voir le code après la modification.
BroadcastReceiver n'est pas une interface, vous ne pouvez pas "mettre en œuvre".
OriginalL'auteur J Jiang
si vous voulez le service de communiquer avec l'activité.nous avons deux méthodes.
1, vous pouvez utiliser DIFFUSION. vous pouvez envoyer DIFFUSÉE en service et d'utilisation BroadcastReceiver en activité.
2, vous pouvez également utiliser bindService de communiquer de l'activité.
vous pouvez utiliser iBinder à communiquer avec le service
Alors, comment faire le service communiquer avec l'activité par le biais IBinder? Quelque chose de mal ici, IBinder est seulement pour les activités->service des communications
OriginalL'auteur jowen