2012-01-12 21 views
5

Estoy creando un servicio de Android que comenzará a ejecutarse después de que se complete el proceso de inicio del dispositivo. En mi servicio, estoy creando una tarea. Esta tarea se iniciará o interrumpirá en cualquier momento dependiendo de algunas condiciones. Mi intención es que cada vez que inicie mi tarea, quiero mostrar un ícono en la barra de estado para saber que mi tarea se está ejecutando, como que el icono de Bluetooth se mostrará cuando se encienda.Mostrar un icono en la barra de estado cuando se está ejecutando mi tarea

+0

Posible duplicado de [¿Cómo mostrar un icono en la barra de estado cuando la aplicación se está ejecutando, incluso en el fondo?] (http://stackoverflow.com/questions/3973208/how-to-show-an-icon-in-the- status-bar-when-application-is-running-including-in) –

Respuesta

0

Se puede utilizar una barra de título personalizada como Custom title with image

y compruebe la configuración que su servicio es habilitar o deshabilitar y configurar título personalizado preferencia. pero antes de hacerlo, lea: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

+0

El título personalizado es diferente del icono de la barra de estado. En realidad, en mi aplicación no hay actividad, es un servicio que se inicia automáticamente después de que se inicia el dispositivo. ¿Es posible usar un título personalizado sin actividad en la aplicación? De todos modos, gracias por tu respuesta. –

+0

sí, es posible iniciar el servicio sin ninguna actividad ... simplemente inicie su servicio como primer plano. Proporcionará un objeto de notificación para iniciar el servicio – waqaslam

7

Necesita Notification. Código está hablando :)

En su servicio:

private NotificationManager mNM; 
private int NOTIFICATION = 10002; //Any unique number for this notification 

Para mostrar la notificación:

private void showNotification() { 
    // In this sample, we'll use the same text for the ticker and the expanded notification 
    CharSequence text = getText(R.string.local_service_started); 

    // Set the icon, scrolling text and timestamp 
    Notification notification = new Notification(R.drawable.status_icon, text, System.currentTimeMillis()); 

    // The PendingIntent to launch our activity if the user selects this notification 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      new Intent(this, MainActivity.class), 0); 

    // Set the info for the views that show in the notification panel. 
    notification.setLatestEventInfo(this, getText(R.string.local_service_label), text, contentIntent); 

    // Send the notification. 
    mNM.notify(NOTIFICATION, notification); 
} 

y para ocultarlo, sólo tiene que hacer esto:

mNM.cancel(NOTIFICATION); //The same unique notification number. 

Aquí son algunas aclaraciones:

  • R.drawable.status_icon: Notificación icono
  • R.string.local_service_started: Notificación del título
  • R.string.local_service_label: Notificación de información más reciente (subtítulo)
  • MainActivity.class: La actividad que se pondrá en marcha cuando el usuario haga clic en la notificación
+0

. Creo que la notificación es diferente del icono de la barra de estado. Mencioné como icono de Bluetooth que se muestra en la barra de estado. Creo que tu respuesta no es adecuada para mis requerimientos. De todos modos, gracias por responder a mi pregunta. –

+0

¿Te refieres a un ícono con el que el usuario nunca interactuará? ¿Te gusta el icono 3G, la sincronización y los auriculares? – iTurki

+0

sí, ¿es posible con una aplicación? –

Cuestiones relacionadas