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 notofiqueGravacao() {
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.