2010-04-29 6 views
3

iam tente d'exécuter une activité de package diffrent de mon service à distance: c'est comment je mettre en œuvre les service.javaactivité de service à distance de course

public class CurrencyService extends Service 
    { 
    public class CurrencyServiceImpl extends ICurrencyService.Stub 
    { 

    int CALL_PUSH_SERVICE_ACTIVITY=10; 


    @Override 
    public void callSomeActivity(int activityId) throws RemoteException 
    { 
      Intent pushActivity=new Intent("com.pushservice.PushActivity"); 
      pushActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

      startActivity(pushActivity); 
    } 
    ..... 

}

ive a également ajouté une ligne le manifeste du service:

le service fonctionne bien, mais je ne peux pas lancer l'activité -> PushActivity qui est dans le paquet différent d'application différente, c'est l'erreur:

Activité non trouvée Exception: aucune activité trouvée pour traiter intention {act = com.pushservice.PushServiceActivity FLQ = 0x10 ...

merci.

Répondre

1

Vous essayez d'ouvrir un Activity qui a un intent-filter avec un action de "com.pushservice.PushActivity". Vous n'avez pas un Activity qui a un intent-filter avec un action de "com.pushservice.PushActivity". La meilleure réponse est de ne pas afficher une activité d'un service, car les utilisateurs seront très irrités avec vous si vous les interrompez lorsqu'ils utilisent le périphérique.

+0

Oui, mais mon attention à cette activité, est de ne pas en place une interface utilisateur graphique qui interrompt l'utilisateur, mais juste pour faire quelque chose d'autre en arrière-plan, mais juste pour travailler en arrière-plan (ont pas d'écran cela apparaîtra) .. comment dois-je ajuster mon manifeste pour l'exécuter? – Moshik

+0

Vous ne pouvez pas avoir une activité "juste pour faire autre chose en arrière-plan, mais juste pour travailler en arrière-plan (ne pas avoir d'écran qui apparaîtra)". C'est ce que les services sont pour. – CommonsWare

+0

Okie, si mal mettre d'autre où, comment allez-vous appeler d'un service distant, à un autre service distant pour faire un autre travail .. je veux avoir un système modulaire, que chaque service à distance sera responsable sur une partie du système . – Moshik

2

Vous ne devez pas appeler l'activité de démarrage de votre service. De Android developers best practice:

Instead of spawning Activity UIs directly from the background, you should instead use the NotificationManager to set Notifications. These will appear in the status bar, and the user can then click on them at his leisure, to see what your application has to show him.

Questions connexes