2010-03-08 16 views
7

Estoy tratando de crear un acceso directo en la pantalla de inicio que, cuando se presiona, iniciará un servicio en lugar de una actividad.¿Es posible iniciar un servicio con un atajo?

¿Es posible? ¿Cómo?

Gracias!

+0

Qué está haciendo el servicio? ¿Qué hay de simplemente configurar un receptor para escuchar algo que el servicio usa para iniciarlo? – Mark

Respuesta

9

Se puede crear una actividad ficticia que simplemente inicia un servicio, entonces termina en sí:

public class MyServiceActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = new Intent(this, MyService.class); 
     startService(intent); 
     finish(); 
    } 
} 
+0

cierto. Lo estaba tomando literalmente, pero eso ciertamente funcionaría. Sin embargo, es posible que tengas que jugar un poco con el tema, para que no tengas un destello momentáneo de una actividad. – CommonsWare

+0

Este código definitivamente funciona y esto es lo que hace mi código actualmente. Estaba intentando omitir el paso de actividad adicional. – gnobal

+3

Asegúrate de que tus usuarios entienden lo que está pasando, sin embargo. Puedo ver este tipo de cosas obteniendo una gran cantidad de quejas de una estrella, "tachado el shorcut y nada pasó" en el mercado. – CommonsWare

5

No, lo siento. Los accesos directos solo inician actividades.

+0

Entonces, ¿hay alguna forma oficial de crear un widget/acceso directo para iniciar un servicio? (para enviar una solicitud de red)? Los accesos directos solo pueden iniciar actividades, los widgets no tienen el mismo estilo que un acceso directo. Gracias. –

+0

@ThomasVos: un widget de aplicación puede usar un 'PendingIntent' para iniciar una actividad, iniciar un servicio o enviar una transmisión. Simplemente conéctelo a algo en la interfaz de usuario del widget de la aplicación (por ejemplo, un botón) para que se invoque cuando se haga clic en esa interfaz de usuario. – CommonsWare

+0

Gracias por su respuesta. Eso funcionaría, pero me gustaría que el widget 1x1 tenga el mismo estilo que un "acceso directo". –

Cuestiones relacionadas