2010-06-20 5 views
2

Je voudrais savoir s'il existe un moyen d'utiliser la barre de notication pour effectuer certaines opérations (onClick), sans qu'une activité soit lancée/reprise.Notification personnalisée

par exemple .. Disons que je lève un notifcation, et quand la presse utilisateur, puis au lieu de me prendre à une activité, il invoque une méthode régulière dans mon activité actuelle/Service

Y at-il façon de mettre en œuvre une telle chose?

par exemple le code de notifcation actuel fait un comportement standart onClick. courir une activité .. comment va changer le code afin d'invoquer une méthode au lieu d'une activité?

 messagesManager = (NotificationManager) 
       context.getSystemService(Context.NOTIFICATION_SERVICE); 


    Notification notification = new Notification(R.drawable.icon, message, 
      System.currentTimeMillis()); 
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
      new Intent(context, someActivity.class), 0); 
    notification.setLatestEventInfo(context, "notification", message, 
      contentIntent); 
    messagesManager.notify(R.string.noto, notification); 

Répondre

3

Y a-t-il un moyen d'implémenter une telle chose ?

Utilisez un PendingIntent approprié. Au lieu d'appeler getActivity(), appelez getService() ou getBroadcast().

+0

Comment getService ou getBroadcast m'aidera-t-il à invoquer une méthode régulière? pourriez-vous me montrer un échantillon d'une telle intention en suspens? – Moshik

+1

Dans le 'BroadcastReceiver' ou' Service' (par opposition à 'Activity') lancé en cliquant sur la notification, c'est là que vous pourriez" invoquer une méthode ". –

+1

Oui, mais comment invoquer une méthode (via la barre de notification) dans le même service qui a déclenché cette notification? est-ce une méthode que je pourrais remplacer dans ce service quand getService est appelé depuis le gestionnaire de notification (et à partir de là je pourrais naviguer vers ma méthode cible) – Moshik

0

Je ne crois pas que ce soit possible ou, à tout le moins, la meilleure pratique. Il est possible qu'Android puisse tuer votre activité pendant que la notification est toujours en attente dans la barre supérieure. Par exemple, vous avez peut-être un appel téléphonique, mais Android a peu de RAM - il tue votre activité, donc il n'y a plus vraiment d'activité «actuelle».