¿Es posible colocar un servicio en un subpaquete?
Frecuentes
Visto 439 veces
3
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).
2 Respuestas
1
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
0
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
@ 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 android android-manifest or haz tu propia pregunta.
Deberías poder hacerlo bien. ¿Cómo es que su servicio "no funciona"? ¿Cómo estás iniciando tu servicio? - kabuko
Estoy subclasificando el DownloaderService como se describe aquí, por lo que no iniciaré el servicio yo mismo... - Till