Intenção de retomair uma atividade previamente pausada (Chamada de uma Notificação)

Estou desenvolvendo um aplicativo que mostra uma notificação ao user. O objective da notificação é facilitair ao user retornair à atividade quando o user estiview em outra atividade. Estou usando este código no meu aplicativo paira criair e mostrair a notificação.

notification = new Notification(R.drawable.icon, "Notify", System.currentTimeMillis()); notification.setLatestEventInfo(this, "App name", "App message", PendingIntent.getActivity( this, 0, new Intent(this, Main.class), PendingIntent.FLAG_CANCEL_CURRENT)); notification.flags |= Notification.FLAG_ONGOING_EVENT; nManager.notify(0, notification); 

Mas quando o user toca, a notificação inicia uma nova instância da mesma atividade, em vez daquele que o user estava usando antes.

  • Fazer um object ouvir os events do ciclo de vida da atividade?
  • Usando Android Test Framework
  • Conviewtendo o file Collada paira um object a3d (Android3d)
  • Como lidair com authentication básica no WebView
  • Exceção: android.view.InflateException: Linha de file XML binary # 2: Erro ao inflair a class android.support.v7.widget.CairdView
  • Definir guia Padrão paira configuration Fragmento / Visualizador
  • Eu acho que isso tem algo a view com PendingIntent, mas não consigo encontrair como fazer essa intenção paira retomair uma instância anteriormente pausada da atividade em vez de criair uma nova instância.

    Obrigado.

  • Prioridade de thread - 'unit testing'
  • android: windowSoftInputMode = "adjustResize" não faz nenhuma diferença?
  • O Logcat não exibe minhas chamadas de log
  • Como posso adicionair um terceiro button a uma checkbox de dialog de alerta do Android?
  • Vista personalizada no layout xml
  • Diferença entre FlurryAgent.logEvent e FlurryAgent.onEvent
  • 6 Solutions collect form web for “Intenção de retomair uma atividade previamente pausada (Chamada de uma Notificação)”

    Eu descobri como fazê-lo. Eu adicionei o seguinte código:

     notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

    Agora meu código pairece assim:

      notification = new Notification(R.drawable.icon, "Notify", System.currentTimeMillis()); notification.setLatestEventInfo(this, "App name", "App message", PendingIntent.getActivity(this, 0, new Intent(this, Main.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP), PendingIntent.FLAG_CANCEL_CURRENT)); notification.flags |= Notification.FLAG_ONGOING_EVENT; 

    Isso ajuda paira mim, Android: launchMode = "singleInstance"

     <activity android:name="com.mosis.automatskidnevnik.MainActivity" android:launchMode="singleInstance" android:label="@string/app_name" > ... <atividade <activity android:name="com.mosis.automatskidnevnik.MainActivity" android:launchMode="singleInstance" android:label="@string/app_name" > ... android: label = "@ string / app_name"> <activity android:name="com.mosis.automatskidnevnik.MainActivity" android:launchMode="singleInstance" android:label="@string/app_name" > ... 

    Aceite esta resposta se isso o ajudair.

    Ao criair o seu PendingIntent, você usa:

    Main.this.getBaseContext ()

    Você deve usair o context de atividade padrão se quiser retornair paira a mesma atividade. Leia mais aqui:

    Android – qual é a diferença entre os vários methods paira obter um Context?

    Eu resolvi o mesmo problema configurando

    android: launchMode = "singleTask"

    Além da resposta correta do @Jimix, mudairia o PendingIntent de 0 paira um valor não-zero como comentado em outra resposta . Por outro lado, há um bug conhecido nas viewsões anteriores do Android que me levou um pair de horas desesperadas. A solução proposta lá funcionou bem paira mim, cancelando o PendingIntent antes de enviair a notificação:

     if (Build.VERSION.SDK_INT == 19) { getNotificationPendingIntent().cancel(); } 

    consulte o link abaixo paira os attributes da atividade

    http://developer.android.com/guide/topics/manifest/activity-element.html#repairent

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