¿Es posible colocar un servicio en un subpaquete?

My Servicios solo funciona si tengo MyService.java en un paquete como

com.test.app

, pero NO en un subpaquete como

com.test.app.services.MyService

En el manifiesto intenté declararlo con

<service android:name=".services.MyService" />

o totalmente calificado

<service android:name="com.test.app.services.MyService" />

pero de ninguna manera funcionó. Estoy usando subpaquetes para una mejor estructura de mis archivos. Entonces, ¿realmente no puedo poner mi archivo de servicio en un subpaquete o me estoy perdiendo algo aquí?

(Estoy trabajando con la biblioteca de descarga de expansión proporcionada por el equipo de Android. Esto implica implementar un servicio simple).

preguntado el 22 de mayo de 12 a las 19:05

Deberías poder hacerlo bien. ¿Cómo es que su servicio "no funciona"? ¿Cómo estás iniciando tu servicio? -

Estoy subclasificando el DownloaderService como se describe aquí, por lo que no iniciaré el servicio yo mismo... -

2 Respuestas

Sí, puede ponerlo en el espacio de nombres que desee.

Más allá de la subclasificación DownloaderService necesita leer el resto del documento, incluyendo Comenzando la descarga. De particular interés es esta línea:

// Start the download service (if required)
int startResult = DownloaderClientMarshaller.startDownloadServiceIfRequired(this,
                pendingIntent, SampleDownloaderService.class);

Tenga en cuenta que debe proporcionar su personalizado Service clase aquí.

contestado el 22 de mayo de 12 a las 19:05

Esto es muy raro. Ofrezco mi clase de servicio personalizado y, como dije, todo funciona (incluida una descarga de prueba de los servidores de Google Play), pero solo si el servicio está en el paquete principal... - a

@Hasta que tengo exactamente el mismo problema. ¿Has conseguido solucionar esto? - elV0ID

@ theV0ID Si no recuerdo mal, terminé manteniéndolo en el paquete principal ... - a

Sí, es compatible.

He hecho esto muchas veces. Lo más probable es que esté pasando algo más. Lo primero que verificaría es asegurarme de que su Intent está debidamente construido.

contestado el 22 de mayo de 12 a las 19:05

Estoy subclasificando el DownloaderService como se describe aquí, por lo que no iniciaré el servicio yo mismo... - a

@ Hasta que ese sea tu problema. El hecho de que haya subclasificado el otro servicio no significa que se inicie mágicamente cuando DownloaderService comienza Eso sería malo por una variedad de razones. Deberá iniciar su Service tú mismo. - Argyle

No, DownloaderLibrary lo inicia (para archivos de expansión), pero solo si está en el paquete principal declarado en el manifiesto package="com.test.app" - a

@ Hasta ver la respuesta que da @kabuko a continuación. Esa clase está escondiendo la construcción del Intent, pero esa es la clave aquí. - Argyle

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.