2010-02-15 11 views
18

Creé una nueva clase llamada HelloService. Agregué esto a Android manifest.xml.¿Por qué mi servicio no funciona en Android? (Solo quiero registrar algo cada 5 segundos)

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; 
    } 
} 

Mi otra actividad lo llama así:

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

Por alguna razón, me puso un punto de interrupción en mi nuevo HelloService ... pero ni siquiera está golpeando. No está registrando tampoco.

Editar: "No se puede iniciar el servicio Intención {cmp = com.examples.hello/.HelloService}: no encontrado"

¿Qué significa eso? ... creé HelloService.java en el mismo lugar que todo lo demás ...


solucionado. Arreglé mi archivo manifiesto Gracias Nikola Smiljanic

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

a:

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

¿Qué ha agregado a su archivo de manifiesto? –

+20

Si ha resuelto su problema, publique una respuesta y acéptelo. Esto lo eliminará de la señal sin respuesta que crece día a día. – Merlin

+0

exactamente lo que he encontrado, es extraño que en el documento oficial: http: //developer.android.com/guide/topics/fundamentals/services.html#Declaring, utilicen , con el punto como el prefijo – DiveInto

Respuesta

1

Va a tratar esto:

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

declarar el archivo de su servicio en mainfest.xml de su proyecto.

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

Un servicio tiene un ciclo de vida como cualquier otra aplicación Android. Por esta razón, puede ocurrir que su servicio sea asesinado por el sistema (consulte la documentación Service). La forma correcta de implementar esto es usando Alarm Manager como se discutió en Android service stops.

Cuestiones relacionadas