5

La vista de mi PreferencesActivity se rellena a través de XML y en ese XML incluí un PreferencesScreen para navegar a las preferencias de sincronización del sistema. Funciona bien usando el siguiente código.Establecer indicadores de intención para PreferenceScreen en xml

Mi problema/pregunta es que cuando abrí las Preferencias de Sincronización, abro la pantalla de inicio y luego abro mi Aplicación nuevamente, las Configuraciones de Sincronización se abren porque se encuentran en la parte superior de la pila. ¿Existe la posibilidad de incluir el indicador NEW_TASK en el archivo XML para indicar a la pantalla que se trata de una tarea nueva y que no está asociada a la pila de mi aplicación?

<PreferenceScreen 
     android:title="@string/preferences_activity_syncaccounts_title" 
     android:summary="@string/preferences_activity_syncaccounts_summary" 
     android:dialogTitle="@string/preferences_activity_syncaccounts_title"> 
     <intent 
      android:action="android.settings.SYNC_SETTINGS"/> 
    </PreferenceScreen> 

Respuesta

1

Puede configurar android: launchMode = "singleInstance". En el ejemplo de código sería:

<PreferenceScreen 
     android:title="@string/preferences_activity_syncaccounts_title" 
     android:summary="@string/preferences_activity_syncaccounts_summary" 
     android:dialogTitle="@string/preferences_activity_syncaccounts_title"> 
    <intent 
     android:action="android.settings.SYNC_SETTINGS" 
     android:launchMode="singleInstance" /> 
    </PreferenceScreen> 

Una actividad "SingleInstance", por otro lado, permite ninguna otra actividad a ser parte de su tarea. Es la única actividad en la tarea. Si comienza otra actividad, esa actividad se asigna a una tarea diferente, como si FLAG_ACTIVITY_NEW_TASK estuviera en el intento.

Puede leer más aquí: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

Cuestiones relacionadas