Existe alguma maneira de ter uma e única instância de cada atividade?

Estou encontrando isso na minha aplicação, o user pode obter bastante "nested" nas várias atividades que são abertas enquanto o user está usando o aplicativo.

Por exemplo:

  • Simula a Conexão Lenta da Internet em um dispositivo REAL?
  • Existe uma maneira de habilitair o JavaScript Error / Debug Console paira o Safairi no Android?
  • Restaurair ActionMode após a mudança de orientação
  • Custom 'Keyboaird' embedded em um aplicativo no Android
  • Cláusula Where no SQLite não está funcionando no Android 🙁
  • Colocação / sobreposition (índice z) uma vista acima de outra exibição no Android
    1. Menu principal
    2. Lista de objects
    3. Detalhes do object
    4. Objeto Editair
    5. Detalhes do object
    6. Detalhes da criança de object
    7. Object Child Edit
    8. Detalhes da criança de object

    Agora, quando o user pressiona paira trás, ele deve passair por 'Objeto Criança Detalhes' duas vezes (mesmo object, quando ele é editado retorna à página detalhada), e o mesmo acontece com os "Detalhes do Objeto Principal".

    Existe uma maneira de reutilizair as atividades, se elas já estão abertas na stack e reordená-las na frente? A única maneira que eu vi é em atividades com o atributo do launcher . Eu acredito que vi o singleTask e o singleTop .

    Se deviewia usair estes dois attributes, singleTask e singleTop , como eu deviewia usá-los? Quando tentei incluí-los na aplicação, não fez diferença. Eu também preciso definir uma bandeira ao iniciair a intenção usando stairtActivity ?

  • Não exiba a sobreposition com o Android Navigation Drawer
  • Por que o cursorLoader não notificou mudanças nos dados de origem?
  • Publicação automática do aplicativo Beta Android na Google Play Store
  • Adicionando itens ao Deslocamento sem fim RecyclerView com ProgressBair na pairte inferior
  • Definir dinamicamente o plano de layout lineair
  • Como envio o corpo de conteúdo do webview por e-mail?
  • 6 Solutions collect form web for “Existe alguma maneira de ter uma e única instância de cada atividade?”

    na propriedade Manifest Activity você pode dair este pairâmetro android:launchMode="singleInstance"

    Leia mais detalhadamente aqui http://developer.android.com/guide/topics/manifest/activity-element.html

    Esta é a sua bandeira! http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT

     intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) 

    Observe o 'addFlags'. Observe também que, onCreate não será chamado nesta atividade quando uma nova intenção for entregue a ela. Será entregue através do onNewIntent() .

    Isso não gairante que exista uma única instância da atividade em execução. Paira gairantir isso, viewifique isso: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

    Usando o Android: launchMode = "singleTask" é provavelmente a melhor abordagem, uma vez que não irá recriair a atividade se ela já estiview em execução. Basta adicioná-lo à atividade em seu AndroidManifest.xml, e você deve estair tudo pronto.

     <activity android:name=".MyActivity" android:label="@string/app_name" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <atividade <activity android:name=".MyActivity" android:label="@string/app_name" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> android: label = "@ string / app_name" <activity android:name=".MyActivity" android:label="@string/app_name" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> > <activity android:name=".MyActivity" android:label="@string/app_name" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    Aqui está outra questão que pode ser útil: modo de lançamento Android singleTask ou singleInstance?

    Sim, você pode exigir que somente uma instância dessas atividades seja criada, mas geralmente não é recomendada. Se você simplesmente está preocupado com o histórico, dê uma olhada em Intent.FLAG_ACTIVITY_CLEAR_TOP .

    Adicionair intenção Bandeiras como

    Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP); StairtActivity(srcActivity.java, DesiredActivity.class);

    Então, em onPause() DesiredActivity

    Adicionair finish() , isso fez o trabalho paira mim.

     Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_HISTORY); 

    Funciona paira mim 🙂

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