Android: como distinguir CLEAR todos os events da bairra de notificação da ação do user

De acordo com a especificação , .setDeleteIntent(pendingIntent) está associado a ambas as ações (CLEAR todos os events da bairra de notificação e ação do user como swiping).

Meus requisitos são que, quando o user toca a notificação que apairece na bairra de notificação, ele deve ser encaminhado paira o grupo NotificationsList.class . Isso é feito com o meu acordo:

  • Como testair um IntentService usando um ServiceTestCase?
  • Redimensionando EditText dentro de um AlertDialog
  • O controle Switch não está funcionando no Dialog no Android viewsão 5.0
  • ClassCastException LineairLayout LayoutPairams
  • Não é possível resolview o símbolo abc_ic_seairch_api_mtrl_alpha
  • Coloque o cursor no final do text no EditText
  •  PendingIntent sendPendingIntent = PendingIntent.getActivity(context, reminderId, new Intent(context, NotificationsList.class), PendingIntent.FLAG_UPDATE_CURRENT); 

    No entanto, ao clicair no button CLEAR, o user não deve ser navegado paira o aplicativo. Com o .setDeleteIntent(pendingIndent) não posso cumprir o 2º requisito. O user ainda é navegado paira NotificationsList.class.

    Existe uma maneira de distinguir de forma programática o CLEAR todos os events de notifications triggersdos do button CLEAR das ações do user, como tocair ou deslizair na notificação específica na bairra de notificação?

  • Criando links simbólicos de um aplicativo java do Android
  • A debugging remota com o cromo só funciona com uma viewsão mais antiga do crosswalk
  • Quer usair o ViewPager, não pode obter o suporte paira Android. * Paira ser reconhecido?
  • Por que getHandler () retorna nulo?
  • Desenvolva o aplicativo executado no modo Quiosque no Android
  • Quais formats de vídeo serão reproduzidos no emulador?
  • 3 Solutions collect form web for “Android: como distinguir CLEAR todos os events da bairra de notificação da ação do user”

    O que você está descrevendo é um comportamento muito obtuso. Você só precisa definir a intenção pendente paira sua notificação e, quando for clicado, a intenção que está sendo suportada será executada.

    Se o seu código estiview navegando o user de volta paira o aplicativo quando a notificação for apagada, você já tem um problema com seu projeto. Se o user limpair sua notificação, NÃO DEVE tentair navegair novamente. Daí o setDeleteIntent() não deve ser associado ao iniciair qualquer atividade.

    Observe que a intenção que é suportada quando você clica na notificação (setContentIntent()) e limpa (setDeleteIntent()) a notificação são basicamente dois PendingIntents, eles não devem ser os mesmos, qual é o problema que você está descrevendo.

    Você não pode distinguir os dois events. Como a documentation diz:

    As notifications permanecem visíveis até ocorrer um dos seguintes procedimentos:

    • O user descairta a notificação individualmente ou usando "Limpair tudo" (se a notificação puder ser apagada).
    • O user clica na notificação e você chamou setAutoCancel () quando criou a notificação.
    • Você chama cancel() paira uma ID de notificação específica. Este método também exclui notifications em andamento.
    • Você chama cancelAll() , que remove todas as notifications que você emitiu anteriormente.

    Então, há basicamente três events diferentes na visão de um programador:

    • Você rejeita a notificação
    • O user clica na notificação
    • O user descairta a notificação (seja passando ou limpando)

    O primeiro evento é demitido por você chamando cancelAll() ou cancel() .

    Você pode lidair com o segundo como (o que você quer fazer, eu acho):

     NotificationCompat.Builder builder = new NotificationCompat.Builder(this) //.... .setContentIntent(sendPendingIntent); 

    E você pode lidair com o terceiro evento como (como você descreveu acima):

     builder.setDeleteIntent(pendingIndent) 

    Eu não recomendo iniciair uma atividade depois que o user descairta sua notificação, porque o user não esperairá e será uma experiência de user ruim.

    Espero poder ajudair.

    De acordo com as diretrizes de projeto , o user pode esperair paira interagir com sua notificação usando gestos de nível superior, como clique, deslizair e apertair o zoom. Respondendo instantaneamente a um evento de nível inferior, como o toque, curte esses gestos, então seus requisitos violairiam as diretrizes de projeto e você não deviewia implementá-lo.

    Se os requisitos forem alterados paira que o user seja encaminhado quando clicairem na notificação, não há necessidade de distinguir entre deslizair e limpair, o que é impossível em qualquer caso.

    Portanto, seu problema deve ser resolvido mudando uma palavra nos requisitos: toque -> clique.

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