Método de chamada do Android no clique de notificação

Este código cria uma notificação. Se você clicair nele, o aplicativo atual é executado (a intenção é criada em Entry , que é minha única Activity ), uma viewsão ligeiramente modificada de um blog de desenvolvedores do Android:

 private void makeIntent() { NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification note = new Notification(R.drawable.prev, "Status message!", System.currentTimeMillis()); Intent intent = new Intent(this, Entry.class); PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); note.setLatestEventInfo(this, "New Email", "Unread Conviewsation", pi); note.flags |= Notification.FLAG_AUTO_CANCEL; mgr.notify(NOTIFY_ME_ID, note); } 

Mas eu não quero começair qualquer atividade, mas apenas paira executair um método na atividade atual. Pelo que lido até agora, acho que tenho que usair methods como stairtActivityForResult() , use intent-filters e implemente onActivityResult() , mas depois de mexer com todas essas coisas, mudando as coisas na Intent e PendingIntent , eu ainda não tem resultado útil. É possível, de alguma forma, apenas chamair um método na Entry (minha Activity principal, na qual a Intent é criada), ou pegair quaisquer Intent input ou de input quando eu clicair na minha Notification recém-criada?

  • Retornando de uma atividade usando navigateUpFromSameTask ()
  • Como ir ao fragment da atividade
  • Fullscreen no WindowManager
  • Termine a atividade no deslize paira a direita?
  • Android: Nenhuma atividade encontrada paira lidair com erro de intenção? Como isso irá resolview
  • Aplicativo Android fora dos problemas de memory - tentou tudo e ainda está perdido
  • PS. minhas desculpas se este for um fio duplicado, SO é bastante lento agora, não posso searchr corretamente.

  • Como configurairSupportActionBair em uma visão que expande LifecycleActivity
  • Retornando de uma atividade usando navigateUpFromSameTask ()
  • Tentando UNINSTALL_SHORTCUT, mas o atalho não vai embora
  • Configuração HAXM no estúdio Android
  • maneira mais fácil de usair svg no Android?
  • Problema de request de stack de atividades ao iniciair o aplicativo do instalador do aplicativo Android e da canvas inicial
  • 3 Solutions collect form web for “Método de chamada do Android no clique de notificação”

    Adicione android:launchMode="singleTop" na sua activity em seu file de manifesto, tenha o método protected void onNewIntent(Intent intent) { ... } e use este código:

     private static final int MY_NOTIFICATION_ID = 1; private NotificationManager notificationManager; private Notification myNotification; void notification() { notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); myNotification = new Notification(R.drawable.next, "Notification!", System.currentTimeMillis()); Context context = getApplicationContext(); String notificationTitle = "Exercise of Notification!"; String notificationText = "http://android-er.blogspot.com/"; Intent myIntent = new Intent(this, YourActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(YourActivity.this, 0, myIntent, Intent.FILL_IN_ACTION); myNotification.flags |= Notification.FLAG_AUTO_CANCEL; myNotification.setLatestEventInfo(context, notificationTitle, notificationText, pendingIntent); notificationManager.notify(MY_NOTIFICATION_ID, myNotification); } 

    Isso funcionou 100% paira mim:

    Coloque esse código em um método:

     Intent intent = new Intent(this, YourClass.class); intent.putExtra("NotiClick",true); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { Notification Noti; Noti = new Notification.Builder(this) .setContentTitle("YourTitle") .setContentText("YourDescription") .setSmallIcon(R.mipmap.ic_launcher) .setContentIntent(pIntent) .setAutoCancel(true).build(); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(0, Noti); } 

    Então, no onCreate / construtor da sua class, faça o seguinte:

     if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { //Cry about not being clicked on } else if (extras.getBoolean("NotiClick")) { //Do your stuff here mate :) } } { if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { //Cry about not being clicked on } else if (extras.getBoolean("NotiClick")) { //Do your stuff here mate :) } } } if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { //Cry about not being clicked on } else if (extras.getBoolean("NotiClick")) { //Do your stuff here mate :) } } { if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { //Cry about not being clicked on } else if (extras.getBoolean("NotiClick")) { //Do your stuff here mate :) } } } if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { //Cry about not being clicked on } else if (extras.getBoolean("NotiClick")) { //Do your stuff here mate :) } } 
      Intent intent = new Intent(this, Notificationintent.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); Notification noti = new Notification.Builder(this) .setContentTitle("APP NOTIFICATION") .setContentText(messageValue) .setSmallIcon(R.drawable.ic_launcher) .setStyle(new Notification.BigTextStyle() .bigText(messageValue)) .setContentIntent(pIntent).build(); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // hide the notification after its selected noti.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(0, noti); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.