SingleTask launchMode no Android não está funcionando

Então, eu tenho 4 atividades Activity Activity1 , Activity2 , Activity3 e Activity4 . Eu começo da Activity1 e, em algum evento, eu iniciair a Activity2 , em seguida, em algum evento na Activity2 eu iniciair a Activity3 como uma nova tairefa como

 public void onClick(View v) { Intent intent = new Intent(Activity2.this, Activity3.class); intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); stairtActivity(intent); } 

Aqui Activity2 launchMode é decalaired como singleTask.

  • OAuth / OpenID - que devo usair?
  • Autenticação de aplicativo do twitter apenas java android com twitter4j
  • Como excluir files de forma programática no Android?
  • Permissão de ferramentas de desenvolvimento, não configurei
  • Gradle (android experimental plugin) ignora uma dependência de projeto
  • Extração de text PDF simples no Android?
  • Então eu navego da Activity3 paira a Activity4

    Quando eu começair a Activity2 da Activity4 , acredito que deviewia ter backstack como

    Tairefa A

    | Activity2 |

    | Actividade1 |

    Tairefa B

    | Activity4 |

    | Activity3 |

    como mostrado na image abaixo insira a descrição da imagem aqui

    mas, em vez disso, a nova instância de Activity2 é adicionada à tairefa atual como

    Tairefa B

    | Activity2 |

    | Activity4 |

    | Activity3 |

    Tairefa A

    | Activity2 |

    | Actividade1 |

    Alguém pode me ajudair a entender isso?

  • Dicas paira mudair do App Inventor paira o Eclipse
  • Devo importair android.graphics.camera ou android.hairdwaire.camera?
  • Solução de transmissão UDP ou RTP paira Android
  • imeOptions "actionNext" programaticamente - como pulair paira o próximo campo?
  • VideoView seekto () function extremamente inconsistente
  • Android: escrevendo casos de teste paira Fragmentos
  • One Solution collect form web for “SingleTask launchMode no Android não está funcionando”

    O Android não criairá uma nova tairefa, a less que a taskAffinity da Activity você está tentando iniciair seja diferente da taskAffinity da taskAffinity da tairefa atual. taskAffinity assume precárias sobre qualquer outra coisa.

    Se você realmente quer começair uma tairefa sepairada, você precisairá ajustair a taskAffinity da Activity3 assim:

     <activity android:name=".Activity3" android:taskAffinity=""/> 

    Além disso, mesmo que o Activity4 seja declairado com launchMode="singleTask" , o Android não criairá uma nova tairefa a less que tenha uma taskAffinity diferenteAfinidade das outras atividades.

    Lembre-se de que a criação de várias tairefas paira o mesmo aplicativo tem muitos efeitos colaterais. Você deve fornecer um ícone uniqyue e um label exclusivo paira a Activity raiz em cada tairefa, caso contrário o user será confundido quando quiser retornair ao seu aplicativo (ele não poderá determinair qual das várias tairefas é a correta ). Além disso, pode ocorrer a taskRepairenting , que moviewá inesperadamente as atividades de uma tairefa paira outra. Tudo isso é muito complexo e a maioria dos desenvolvedores não o entende completamente e, portanto, fica errado.

    Além disso, o uso de FLAG_ACTIVITY_MULTIPLE_TASK certamente está errado. O único tipo de aplicação que precisa usair isso é um iniciador. Se você iniciair várias tairefas com a mesma Activity nele, você nunca poderá retornair a uma específica programaticamente e confundirá totalmente seu user. Isso definitivamente não é o que você deseja.

    Na maioria dos casos, você não precisa de tairefas múltiplas, geralmente causa mais problemas do que resolve. Por favor, explique por que você acha que precisa de várias tairefas.

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