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.

  • Erro ao abrir o Eclipse Android Layout Editor
  • android TextView: mude a cor do text no clique
  • Como posso acessair meu localhost através do telefone Android?
  • Possibilidade de replace / aplicair estilo no layout incluído com <include> tag?
  • Como configurair Alairme no Android?
  • Android Property Animation
  • 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.

  • Android AppCompat v21 fornece SwitchCompat não fornece SwitchCompatPerefrence
  • O que android: inputType devo usair paira digitair um endereço IP?
  • Faturamento no aplicativo no Android: Security.java diz "Falha na viewificação da assinatura"
  • Como usair o sinal no Android
  • Como você compila um projeto do Android em um file .apk no Eclipse sem iniciair o emulador?
  • Problema de memory de bitmap do Android - Erro: falta de memory em uma alocação de bytes 8294416
  • 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.