fabreder 1 Denunciar post Postado Março 30, 2018 Olá, Dentro do meu aplicativo tenho uma activity que funciona como um gravador de áudio, que é aberta a partir de outras activities do app sempre que preciso. Uma situação comum seria a sequinte pilha: MainActivity > AcidenteActivity > AudioRecordActivity Nesse cenário, por exemplo, estando na AudioRecordActivity, inicio o processo de gravação do áudio, que deve continuar mesmo que o usuário saia para a Home ou outro aplicativo, mas sem encerrar o gravador. Nessa situação, por precaução eu crio uma notificação para que o usuário saiba que o gravador ficou ligado. O que eu desejo fazer é bem simples, ou seja, ao clicar na notificação, quero que a AudioRecordActivity simplesmente retorne para o topo da pilha, sendo exibida a mesma instância ao usuário, que poderá então pausar, salvar ou cancelar a gravação. O que tenho feito sem sucesso é o seguinte: public void notifiqueGravacao() { Intent intent = new Intent(this, AudioRecordActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); Notification.Builder builder = new Notification.Builder(this, NotificationUtils.getChannelId(this)); builder.setContentTitle("Colbat") .setContentText("O gravador de áudio está ativo!") .setSmallIcon(R.mipmap.ic_launcher) .setContentIntent(pendingIntent); Notification notification = builder.build(); nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); if (nm != null) { nm.notify(Constants.NOTIFICATION_ID, notification); } } Do jeito que está acima, ao clicar na notificação o app gera erro e é parado; Quando mudo a activity alvo para AcidenteActivity, por exemplo, ela é aberta, mas então preciso pressionar back para voltar à tela do gravador, que é onde quero ir direto. Já tentei usar flags, TaskStackBuilder, e muita coisa, sem funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
fabreder 1 Denunciar post Postado Março 30, 2018 SOLUÇÃO encontrada em:https://stackoverflow.com/questions/16885706/click-on-notification-to-go-current-activity/21424959#21424959 Interessante é que não se deve colocar a activity de onde criou a notificação, mas a MainActivity do projeto, mais algumas configurações. Agora está perfeito! public void notifiqueGravacao() { Intent resultIntent = new Intent(this, MainActivity.class); resultIntent.setAction(Intent.ACTION_MAIN); resultIntent.addCategory(Intent.CATEGORY_LAUNCHER); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, resultIntent, 0); Notification.Builder mBuilder = new Notification.Builder(this, NotificationUtils.getChannelId(this)) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle("Colbat") .setContentText("Gravador de áudio ativo!"); mBuilder.setContentIntent(pendingIntent); mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = mBuilder.build(); mNotificationManager.notify(Constants.NOTIFICATION_ID, notification); } Compartilhar este post Link para o post Compartilhar em outros sites