2010-02-15 2 views
18

J'ai créé une nouvelle classe appelée HelloService. J'ai ajouté ceci au fichier manifest.xml Android.Pourquoi mon service ne fonctionne-t-il pas sous Android? (Je veux juste enregistrer quelque chose jamais 5 secondes)

public class HelloService extends Service { 
    private Timer timer = new Timer(); 
    private long INTERVAL = 5000; 

    public void onCreate() { 
     super.onCreate(); 
     startservice(); 

    } 

    private void startservice() { 
     timer.scheduleAtFixedRate(new TimerTask() { 
      public void run() { 
       Log.d("servy", "This proves that my service works."); 
      } 
     }, 0, INTERVAL); 
    ; } 

    private void stopservice() { 
     if (timer != null){ 
      timer.cancel(); 
     } 
    } 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 
} 

Mon autre activité appelle comme ceci:

Intent helloservice = new Intent(this, HelloService.class); 
    startService(helloservice); 

Pour une raison quelconque, je mets un point d'arrêt dans mon nouveau HelloService ... mais il est même pas frapper. Ce n'est pas la journalisation non plus.

Edit: "Impossible de démarrer le service {intention cmp = com.examples.hello/.HelloService}: not found"

Qu'est-ce que cela signifie? ... J'ai créé HelloService.java au même endroit que tout le reste ...


Résolu. J'ai corrigé mon fichier manifeste. Merci Nikola Smiljanic

<service android:name=".HelloService"/> 

à:

<service android:name="HelloService"></service> 
+0

Qu'avez-vous ajouté à votre fichier manifeste? –

+20

Si vous avez résolu votre problème, postez une réponse et acceptez-la. Cela l'enlèvera de la queue sans réponse qui augmente de jour en jour. – Merlin

+0

exactement ce que j'ai rencontré, il est étrange que dans le document officiel: http: //developer.android.com/guide/topics/fundamentals/services.html#Declaring, ils utilisent , avec le point comme préfixe – DiveInto

Répondre

1

Est-ce que vous essayez ceci:

helloservice.setComponent(new ComponentName 
       (*hello service package name goes here*, 
           *hello service canonical name goes here*)); 
startService(helloservice); 
0

votre service Donne la dans le fichier mainfest.xml de votre projet.

<services android:name=".SMSReceiver" android:enabled="true"> 
      <intent-filter> 
        <action android:name=/> 
     </intent-filter> 
</services> 
3

Un service a un cycle de vie comme toute autre application Android. Pour cette raison, il peut arriver que votre service soit détruit par le système (voir la documentation Service). La bonne façon d'implémenter cela est d'utiliser Alarm Manager comme discuté dans Android service stops.

Questions connexes