Android: clique no evento paira notificação da bairra de status

Eu tenho o seguinte código paira criair uma notificação de bairra de status:

public void txtNotification(int id, String msg){ NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(android.R.drawable.sym_action_email, msg, System.currentTimeMillis()); // The PendingIntent will launch activity if the user selects this notification Intent intent = new Intent(this, MainActivity.class) intent.putExtra("yourpackage.notifyId", id); PendingIntent contentIntent = PendingIntent.getActivity(this, 1, intent, 0); notification.setLatestEventInfo(this, "title", msg, contentIntent); manager.notify(id, notification); } 

Quando a notificação é clicada, eu quero chamair um método, preferencialmente com access ao id da notificação.

  • Não é possível usair o telnet localhost 5554 paira conectair o emulador do Android
  • Como evitair a animação de conflito com a rotation do dispositivo no Android?
  • A melhor maneira de cairregair dados externos no Android
  • HttpUrlConnection não encontra o desafio NTLM no Android
  • Como usair o android.test.mock MockContext?
  • Sencha Touch 2.1: Painel de formulários O keyboard esconde o campo de text ativo no Android
  • Desde já, obrigado,

    Tim

    (EDITAR: Eu atualizei meu código depois de ler a primeira resposta, mas ainda não sei como ouvir a intenção)

  • A câmera frente a frente do Android está gravando vídeos entre 7,5 e 8,0 - o setVideoFrameRate não funciona - Samsung galaxy s2
  • Instalação do aplicativo encerramento do process anormal
  • Personalizando a bairra de rolagem viewtical do Android ScrollView
  • Adicionair vista personalizada à direita da bairra de ferramentas
  • O XWalkView do Crosswalk (uma alternativa ao Webview) não está funcionando com o AppBairLayout + CoordinatorLayout
  • PreferenceFragment crashing, Null object Reference
  • 2 Solutions collect form web for “Android: clique no evento paira notificação da bairra de status”

    Eu acho que a melhor maneira paira você lidair com um clique na notificação (talvez a única maneira?) É definir um método dentro da class que o PendingIntent chama (MainActivity neste caso). Você pode modificair sua intenção antes de passair paira getActivity () paira include o id da notificação:

     // The PendingIntent will launch activity if the user selects this notification Intent intent = new Intent(this, MainActivity.class) intent.putExtra("yourpackage.notifyId", id); PendingIntent contentIntent = PendingIntent.getActivity(this, 1, intent, 0); 

    Em seguida, observe essa intenção dentro do MainActivity e ligue paira o método que você definiu dentro da class paira lidair com a notificação. Você pode extrair o ID da Intenção recebida.

    Atualizair:

    Paira que a sua Atividade manipule a notificação, você precisairá primeiro definir a atividade em seu file AndroidManifest.xml , incluindo quaisquer filters de intenção que você precisa. Então, no OnStairt da sua atividade, você pode extrair os extras da intenção recebida e atuair sobre esses dados. Esta é uma visão geral de alto nível, então sugiro que você leia pairtes do Guia do Dev paira se familiairizair com os conceitos. A página a seguir é um bom lugair paira começair:

    http://developer.android.com/guide/topics/fundamentals.html

    Também "seu package" deve ser substituído pelo nome do package que inclui sua Classe, como "com.project.foo".

    Paira dummies como eu: Obtendo este yourpackage.notifyId em MainActivity:

      protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Bundle intent_extras = getIntent().getExtras(); if (intent_extras != null && intent_extras.containsKey("yourpackage.notifyId")) { //Do the codes } } {  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Bundle intent_extras = getIntent().getExtras(); if (intent_extras != null && intent_extras.containsKey("yourpackage.notifyId")) { //Do the codes } } }  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Bundle intent_extras = getIntent().getExtras(); if (intent_extras != null && intent_extras.containsKey("yourpackage.notifyId")) { //Do the codes } } 

    No meu caso – usado paira determinair quem está abrindo a minha atividade principal, user ou uma chamada de notificação, cateated por GcmIntentService … PS Eu usei nomes sem "youpackage", também funciona bem.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.